【发布时间】:2016-01-16 10:39:53
【问题描述】:
我有几个 django-cms 2.4.3 (django 1.5.5) 应用程序在生产中运行。我正在升级到 django-cms 3.1.1 (Django 1.8/python2.7)。我可以毫无问题地启动并运行测试环境。但是,导入我现有的数据一直是个问题。我试过了:
- 'python manage.py dumpdata > dump.json' 在生产服务器上。
- 'python manage.py loaddata -ignorenonexistent dump.json' 在开发服务器上。
结果是一系列表已经存在,违反空约束,列不存在等...
然后我尝试直接从 postgresql 导出(作为备份)并恢复到开发安装。运行 python manage.py 迁移。得到一系列与上述类似的附加错误。使用 migrate --fake-initial 和 --fake 运行 migrate。问题是许多页面(以 cms_page 为例)已经从 2.4 更改了 3.x 中的字段。 Migrate 只会查看迁移中的变化,表中的差异。添加了一些字段,删除了一些字段。我查看了 cms_page 迁移 0001 文件。它创建带有额外列的页表。迁移 0003 添加了更多字段并删除了一些字段。名单还在继续。
我花了三天多的时间试图迁移我现有的数据。我什至从 django-cms 3.0 开始,将一些插件自动将我的开发环境升级到 3.1(不,我没有包括 pip install --upgrade)。简直令人沮丧。
我什至开始手动更新数据库表。表约束使这几乎是不可能的。现在我正在考虑完全重写 django-cms 迁移。有什么我忽略的东西会使数据迁移更容易吗?也许继续使用 django-cms 2.4 并将 django 升级到受支持的版本?
【问题讨论】:
标签: django-cms