将更改应用于数据库(迁移)
创建新模型或修改现有模型后,你需要为更改生成迁移,然后将迁移应用于指定的数据库。这可以通过使用 Django 的内置迁移系统来完成。在项目根目录中使用 manage.py
实用程序:
python manage.py makemigrations <appname>
上面的命令将创建应用程序的 migrations
子目录下所必需的迁移脚本。如果省略 <appname>
参数,将处理 settings.py
的 INSTALLED_APPS
参数中定义的所有应用程序。如果你认为有必要,可以编辑迁移。
你可以在不使用 –dry-run 选项实际创建迁移的情况下检查所需的迁移,例如:
python manage.py makemigrations --dry-run
要应用迁移:
python manage.py migrate <appname>
上面的命令将执行第一步中生成的迁移脚本并物理更新数据库。
如果更改现有数据库的模型,则需要使用以下命令进行必要的更改。
python manage.py migrate --run-syncdb
Django 默认会创建名为 <appname>_<classname>
的表。有时你不想使用它。如果要更改默认名称,可以通过在 Meta
类中设置 db_table
来声明表名:
from django.db import models
class YourModel(models.Model):
parms = models.CharField()
class Meta:
db_table = "custom_table_name"
如果要查看某个迁移将执行的 SQL 代码,请运行以下命令:
python manage.py sqlmigrate <app_label> <migration_number>
Django> 1.10
当检测到没有迁移的模型更改时,新的 makemigrations --check
选项使命令以非零状态退出。
有关迁移的更多详细信息,请参阅迁移。