Django 将更改应用到数据库(迁移)

示例

创建新模型或修改现有模型后,您将需要为更改生成迁移,然后将迁移应用于指定的数据库。这可以通过使用Django的内置迁移系统来完成。manage.py在项目根目录中使用实用程序:

pythonmanage.pymakemigrations <appname>

上面的命令将在migrations应用程序的子目录下创建必需的迁移脚本。如果省略该<appname>参数,则将处理在INSTALLED_APPS参数中定义的所有应用settings.py程序。如果发现必要,则可以编辑迁移。

您可以使用--dry-run选项检查需要进行哪些迁移,而无需实际创建迁移,例如:

pythonmanage.pymakemigrations --dry-run

要应用迁移,请执行以下操作:

pythonmanage.pymigrate <appname>

上面的命令将执行第一步中生成的迁移脚本,并以物理方式更新数据库。

如果现有数据库的模型已更改,则需要以下命令进行必要的更改。

pythonmanage.pymigrate --run-syncdb

Django<appname>_<classname>默认会使用名称创建表。有时您不想使用它。如果要更改默认名称,可以通过db_table在类中设置来声明表名称Meta:

fromdjango.dbimport models

class YourModel(models.Model):
    parms = models.CharField()
    class Meta:
        db_table = "custom_table_name"

如果要查看特定迁移将执行的SQL代码,请运行以下命令:

pythonmanage.pysqlmigrate <app_label> <migration_number>

Django> 1.10当检测到没有迁移的模型更改时
,新makemigrations --check选项使命令以非零状态退出。

有关迁移的更多详细信息,请参见迁移。