【问题标题】:Pushing Django updates to production server将 Django 更新推送到生产服务器
【发布时间】:2011-11-24 10:07:30
【问题描述】:

我需要一些关于将 Django 更新(特别是数据库更新)从我的开发服务器推送到生产服务器的建议。我相信更新脚本、文件等会很容易——只需将新文件从开发服务器复制到生产服务器即可。但是,数据库更新让我不确定。

对于 Django,我在初始 Web 应用程序创建期间一直使用 South 来更改数据库架构。如果我在生产服务器上有一些停机时间进行更新,我可以将所有文件复制到生产服务器。这些将包括并更改描述数据库表的models.py 文件。然后我可以执行python manage.py schemamigration my_app --autopython migrate my_app 以根据我复制过来的新文件/models.py 更新数据库。

这是一个好的解决方案,还是有更合适的方法将数据库从开发服务器更新到生产服务器?

你的想法?

谢谢

【问题讨论】:

    标签: django database-schema


    【解决方案1】:

    实际上,python manage.py schemamigration my_app --auto 只会根据models.py 中的更改创建迁移。要将迁移实际应用到数据库,您需要运行python manage.py migrate my_app。另一种选择是在开发服务器上创建迁移(通过运行schemamigration),然后将迁移文件复制到生产服务器并通过运行migrate 应用迁移。

    当然,拥有源代码存储库比复制文件要好得多。您可以在开发服务器上创建迁移,将它们提交到存储库,在生产服务器上从存储库中提取新文件,最后应用迁移。

    【讨论】:

    • 好吧,我省略了迁移操作的第二部分。我编辑了我的问题以反映第二个命令。我想要了解的是这种方法是否适合将数据库更改推送到生产服务器,或者我是否应该研究一种不同的、更符合行业标准的更新数据库架构的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2015-09-20
    相关资源
    最近更新 更多