【发布时间】:2011-05-13 13:51:06
【问题描述】:
我有一个已注册用户的实时 Django 站点。我正在尝试使用与原始站点不同的新版本来更新站点 - 类似的想法但不同的模型。
我怎样才能让现有用户留在新网站上?
我听说 South 可能是一个不错的解决方案,但旧站点没有安装它。在这种情况下可以使用 South 吗?
感谢您的帮助!
【问题讨论】:
标签: python mysql django-south django-database
我有一个已注册用户的实时 Django 站点。我正在尝试使用与原始站点不同的新版本来更新站点 - 类似的想法但不同的模型。
我怎样才能让现有用户留在新网站上?
我听说 South 可能是一个不错的解决方案,但旧站点没有安装它。在这种情况下可以使用 South 吗?
感谢您的帮助!
【问题讨论】:
标签: python mysql django-south django-database
+1 向南,但是...
我们需要更多信息!您是对模型进行彻底的更改,还是只是在此处或那里添加或删除字段?
South 可以处理一些非常激进的迁移,但您必须编写一些自定义迁移代码。就我个人而言,如果我要添加一个新字段,我会使用 South,但不会用于这种更激进的东西。
如果这是一个大的架构更改,完全重新组织您的网站,那么我只需编写您自己的脚本来读取旧对象并创建新对象。制作生产数据库的副本(通过 pg_dump、mysqldump 等)并将其加载到本地计算机上,您可以在其中测试和调试自定义转换脚本。确保您的“旧模型”和“新模型”具有不同的名称,并将所有内容保存在您的 settings.py 中,以便您始终可以读取和写入所有内容。
编写并测试迁移脚本,然后,您可以创建另一个更改列表来删除所有旧对象,然后根据需要删除它们相应的源代码。
【讨论】: