gpt4 book ai didi

django - 在生产环境中执行彻底的 Django 模型迁移的明智方法是什么?

转载 作者:行者123 更新时间:2023-12-02 07:56:31 25 4
gpt4 key购买 nike

我有一个正在使用的现有 Django 网络应用程序。我必须从根本上将我设计中的一个关键模型迁移到一个全新的设计,但我想缓存该模型的所有现有数据,并在准备部署时将它们迁移到生产中的新记录。

我有能力在一个晚上将我的网站关闭几个小时,然后做任何我需要做的事情来迁移。我可以通过哪些明智的方式进行此迁移?

似乎任何迁移都需要:1) 将所有现有数据转储为某种格式,例如 SQL、JSON、XML2) 将模型迁移到新格式3) 使用转换脚本将数据重新加载到新模型

我还考虑过尝试将所有现有数据存储在其他名为“OldModel”的模型中(如果 Model 是现有模型的名称),然后实时迁移数据。

最佳答案

我听说有一个帮助迁移的项目:South .

话虽如此,我承认我们没有使用过它。我们仍然使用 SQL 语句文件来计划我们的迁移。疯狂,我知道,但它具有可测试性的优势。在“大部署”之前的开发和暂存测试期间,您可以根据需要多次运行它。它可以是源代码控制的、差异化的等。因此,它也可以从更大的部署脚本中调用。当然,我们在运行之前备份生产:-)

如果您的数据库进行日志记录,那么使用老式方法还有一个额外的优势,即存在可以回滚的事务历史记录。

我们使用 JSON、XML 和“OldModel”->“NewModel”样式转储进行的实验的扩展性很差。请注意,YMMV...我们有一个相当大的数据库。通过使用脚本,您可以在生产数据库上运行,而无需卸载或重新加载大量数据。这样,即使是复杂的迁移也只需几秒钟,而不是几小时。

关于django - 在生产环境中执行彻底的 Django 模型迁移的明智方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/663698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com