2011-09-24 42 views
2

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

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

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

您的想法?

感谢

回答

1

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

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

+0

好吧,我遗漏了迁移操作的第二部分。我编辑了我的问题以反映第二个命令。我想知道的是,这种方法是否适合将数据库更改推送到生产服务器,或者如果我应该考虑更新数据库模式的另一种更行业标准方法。 – Garfonzo