将South添加到Django项目,开发和生产

Hea*_*rab 13 migration django django-south

将South添加到现有的Django项目中.我把它安装在开发机器和"生产"服务器上.

我在开发机器上完成了以下操作,然后:将南方应用程序添加到settings.py,

python manage.py syncdb
python manage.py convert_to_south myproject.myapp
Run Code Online (Sandbox Code Playgroud)

然后改变了一些模型

python manage.py schemamigration myproject.myapp --auto
python manage.py migrate myproject.myapp
Run Code Online (Sandbox Code Playgroud)

到目前为止似乎工作.我现在不太确定的是在生产服务器上做什么.只需手动重复所有这些步骤?上传修改后的settings.py,执行syncdb,convert_to_south,上传修改过的models.py,做schemamigration,迁移?有些不同?这里的教程说明了如何将迁移添加到版本控制中,因此,大概应该将它们上传并以某种方式应用于生产服务器上?

此外,现在我在开发机器上使用sqlite3,在服务器上使用mysql - 它是不是在南方做任何不同的事情?

小智 16

我的向导说:

  1. 在服务器上安装South.import south来自shell只是为了确保你使用相同的python环境.
  2. 添加'south'INSTALLED_APPSsettings.py.
  3. 上传settings.py.
  4. 重启服务器
  5. python manage.py syncdb.
  6. 上传新的app/models.pyapp/migrations/目录.
  7. 重启服务器.
  8. python manage.py migrate app --fake 0001
  9. python manage.py migrate app

  • 为了澄清以防任何读取此内容的人不清楚:"重启服务器"并不意味着您必须重新启动整个服务器或虚拟机.刚刚反弹网络服务器.例如,如果您使用的是较新版本的ubuntu + apache,"sudo service apache2 reload"就足够了. (2认同)

AKX*_*AKX 4

为了确保南迁表存在,

python manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

进而

python manage.py migrate myproject.myapp --fake 0001
python manage.py migrate myproject.myapp
Run Code Online (Sandbox Code Playgroud)

这就是对我有用的。:)