kiwi-tcms - Kiwi-tcms v8.0 数据库迁移问题与测试运行
问题描述
我刚刚将 Kiwi tcms 从服务器 A 上的 v7.1 迁移到服务器 B 上的 v8.0(我虚拟化了我们的应用程序服务器)。
我为数据库使用 pgsql 容器。
对于迁移,我使用了备份恢复方法。
服务器 B 上的数据库卷是全新的,我使用创建了架构/Kiwi/manage.py migrate
然后我恢复了.json。但是由于主键v8.0的变化,我遇到了架构问题。我刚刚在 json 文件中用新名称替换了旧名称,并且恢复通过了。
该应用程序运行良好,只是当我进入“搜索测试运行”页面时,我现在遇到了测试运行问题:
DataTables 警告:表 id=resultsTable - 请求第 0 行第 0 列的未知参数“run_id”。有关此错误的更多信息,请参阅http://datatables.net/tn/4
我不确定我在迁移过程中是否犯了任何错误,或者迁移过程中是否确实存在错误。
有关信息:我尝试在 v7.3 中的测试容器上迁移 v8.0 中的数据库。一切都很顺利,但最后我遇到了同样的问题。
预先感谢您的支持!
编辑 1
我按照@Alexander Todorov 的建议解决了我的问题,并从头开始迁移步骤:
我在我的 docker 注册表上上传了 kiwi 7.1 的图像,所以我使用 kiwi 7.1 迁移到了我的服务器 B。现在我可以专注于升级了。
我使用 pgsql 容器,所以在迁移之前我不需要更新 mariadb 容器。
我使用 kiwitcms/kiwi:latest 映像升级到 kiwi 8.0。
我不知道为什么从 7.3 版本升级第一次没有成功,但从 7.1 到 8.0 一切都很好。
我可能是从 7.1 备份并在 7.3 上恢复的。目前使用 7.3 一切都很好,但我在迁移到 8.0 时遇到了麻烦......
无论如何,感谢您的支持!
编辑 2
我不知道这怎么可能,但是我无法在另一个实例上重现完全相同的迁移。我每次尝试都会遇到问题。
我现在拥有的:
- 在 v8.0 中运行良好的 kiwi 的 preprod 实例
我想要的是:
- v8.0 中的生产实例
我尝试了什么:
- 在 v8.0 中创建一个新实例并备份 preprod db 以在 prod 上恢复它 => 失败并出现我之前遇到的错误...
DataTables 警告:表 id=resultsTable - 请求第 0 行第 0 列的未知参数“run_id”。有关此错误的更多信息,请参阅http://datatables.net/tn/4
- 在 v7.1 中创建一个新实例并以与我在 preprod 上所做的完全相同的方式迁移 => 失败并出现相同的错误...
我真的对此一无所知:/
解决方案
我刚刚将 Kiwi tcms 从服务器 A 上的 v7.1 迁移到服务器 B 上的 v8.0(我虚拟化了我们的应用程序服务器)。
这就是导致你的问题的原因。您正在尝试将一个版本的数据库架构 + 数据恢复到另一个版本(在第二台服务器上)。在这两个版本之间有相当多的数据库迁移,您尝试做的事情总是会导致失败。
您可以使用服务器 A 并就地升级到最新版本,然后转储数据,移动到服务器 B(具有相同版本)并将数据恢复到干净的 DB 并停用服务器 A。
您也可以将服务器 B 设置为具有旧版本的 Kiwi TCMS,将数据迁移到那里,然后将服务器 B 升级到 v8.0。
推荐阅读
- python - matplotlib 中的堆积条形图——如何编写大量类别的代码?
- angular - Angular9:目标入口点“@angular/fire/auth”中的错误缺少依赖项
- excel - VBA 全局变量作为变量传递
- reactjs - 如何使用 Jest 在 useEffect 挂钩中测试更新窗口历史记录
- python - Python setuptools的依赖项自动发现?
- c# - ReactiveUI 连接 Observable CanExecute 和 IsExecuting 属性
- javascript - 尝试返回二叉树的级别顺序遍历
- bash - 在curl上重命名时如何下载带有扩展名的url?
- python - Python 转换错误:不能将序列乘以“浮点”类型的非整数
- amazon-web-services - 如何在 CloudFormation 模板中将 AWS::ApiGateway::Resource 添加到 AWS::Serverless::Api