在生产环境中向现有django应用添加字段

时间:2014-03-08 21:05:52

标签: python django django-south database-migration

我有一个现有的django应用程序,并希望为模型添加一个字段。 但由于该网站已经投入生产,因此不再需要删除数据库。

这是我采取的步骤:

  • pip install south
  • 将'south'添加到INSTALLED_APPS
  • python manage.py syncdb
  • python manage.py convert_to_south [myapp]

所以现在我进行了初始迁移,南方将识别这些变化。然后我将该字段添加到我的模型中并运行:

  • python manage.py schemamigration [myapp] --auto
  • python manage.py migrate [myapp]

现在我进行了以下迁移:

  • 0001_initial.py
  • 0002_auto__add_field_myapp_fieldname.py

我现在应该在我的生产服务器上运行哪些命令进行迁移?我应该首先安装南方然后拉代码更改和迁移吗?

1 个答案:

答案 0 :(得分:3)

首先是假冒初始迁移:

python manage.py migrate [yourapp] --fake 0001

然后您可以将迁移应用于db

python manage.py migrate [yourapp]


我假设你在开发上运行convert_to_south,在这种情况下,生产仍然不会意识到迁移。 convert_to_south会自动为您暂停初始迁移!如果您只是在没有伪造的情况下在生产中运行migrate,那么它应该是错误的。

相关问题