2009-12-10 176 views

回答

3

即使使用原始SQL,由于您需要每个表的查询,因此无法在单步中迁移整个数据库。但是,您可以为所有应用创建迁移,然后一次全部运行它们。这是您接近一步迁移的最接近的东西。

+0

这就是问题所在。如果我不知道最终会有多少应用程序,这个过程如何实现自动化? – Pil 2009-12-10 08:17:29

+1

应用程序应该反映在数据库中,反之亦然。所以如果你知道你的数据库,你应该知道你的应用程序。 – googletorp 2009-12-10 09:09:39

4

如果你想创建迁移,manage.py startmigration已被弃用(见manage.py help startmigration),你应该使用manage.py schemamigration(如the docs描述的),你绝对应该在每个应用单独做这个。

如果你想运行迁移(即对数据库做,这是我猜的实际改变的话),该命令是manage.py migrate,如果不带任何参数运行,将迁移所有的应用程序到最新的可用迁移。

我的部署脚本只有manage.py migrate,并且无需人工干预即可正常工作,无论有多少应用程序需要运行新的迁移。

+1

在内部,这不是幕后的单一步骤,多个迁移正在运行并且多个SQL语句正在执行。但是,只有一个命令只需输入一次,所以从执行它的人的角度来看,这只是一个步骤。 – 2011-03-05 07:02:07