嗨,我有一些使用 github 托管在 pythonanywhere 的应用程序,现在我在本地机器上对应用程序进行了一些改进,但我不知道如何更新影响数据库的在线应用程序。
提前致谢?
嗨,我有一些使用 github 托管在 pythonanywhere 的应用程序,现在我在本地机器上对应用程序进行了一些改进,但我不知道如何更新影响数据库的在线应用程序。
提前致谢?
您的意思是您已经对本地 PC 上的数据库进行了更改(新的或修改的models.py)并且您想知道如何将它们应用到 PythonAnywhere 上的现有数据库而不破坏现有数据?
这取决于您使用的 django 版本。对于 1.6 及更早的版本,您将使用名为south的工具。对于更新的版本,1.7 及更高版本,您将使用内置的迁移框架。
如果您使用的是 django-migrations,那么它应该非常简单并且“正常工作”。将您的最新代码下载到 PythonAnywhere,激活您的 virtualenv,然后运行
python manage.py migrate
如果您需要使用 South,则要复杂一些。你必须做这样的事情:
python manage.py schemamigration appname --initial
python manage.py schemamigration appname --auto
python manage.py mygrate appname --fake 001
python manage.py migrate
南方文档中的更多信息。这是相当棘手的事情,所以先备份你的数据库!
但希望你使用的是现代版本的 django,你可以用简单的方法做到这一点:)