我有一个现有的 Django 应用程序,想向模型添加一个字段。 但是因为该网站已经在生产中,删除数据库不再是一种选择。
这些是我采取的步骤:
pip install south- 将“南”添加到 INSTALLED_APPS
python manage.py syncdbpython manage.py convert_to_south [myapp]
所以现在我有了初步的迁移,南方会认识到这些变化。然后我将该字段添加到我的模型中并运行:
python manage.py schemamigration [myapp] --autopython manage.py migrate [myapp]
现在我有以下迁移:
- 0001_initial.py
- 0002_auto__add_field_myapp_fieldname.py
我现在应该在我的生产服务器上运行哪些命令来迁移?我还应该先安装 south,然后拉取代码更改和迁移吗?
请您参考如下方法:
首先是伪造初始迁移:
python manage.py migrate [yourapp] --fake 0001
然后您可以将迁移应用到数据库
python manage.py migrate [你的应用]
我假设您在开发中运行了 convert_to_south,在这种情况下,生产仍然不知道迁移。 convert_to_south 会自动为您伪造初始迁移!如果您只是在生产环境中运行 migrate 而没有伪造,它应该会出错。
