【发布时间】:2011-02-07 14:32:23
【问题描述】:
当你在 Django 中运行 syncdb 时,内容类型的主键将被重新计算。如果我创建新模型,下次运行syncdb时,内容类型的主键会不同。
如果我有一个在生产中运行的应用程序,我如何使用新模型更新数据库并保持内容类型 pks 的完整性?
【问题讨论】:
标签: django deployment django-models production-environment
当你在 Django 中运行 syncdb 时,内容类型的主键将被重新计算。如果我创建新模型,下次运行syncdb时,内容类型的主键会不同。
如果我有一个在生产中运行的应用程序,我如何使用新模型更新数据库并保持内容类型 pks 的完整性?
【问题讨论】:
标签: django deployment django-models production-environment
运行syncdb 不会更新现有的 ContentType 值 - 这些值存储在数据库中并且不会更改。所以依赖他们的关系不会受到影响。
但是,当您运行 syncdb 时,新定义的模型将获得新的 ContentType 值,目前无法提前定义这些值是什么。正如 Ludwik 指出的,这个问题在 1.2 中得到了解决。
【讨论】:
这个问题在 Django 1.2(应该在两周内发布)中通过natural keys 解决。
【讨论】: