Django4 中文入门教程 Django4.0 迁移-命令

2024-02-25 开发教程 Django4 中文入门教程 匿名 8

迁移是 Django 将你对模型的修改(例如增加一个字段,删除一个模型)应用至数据库架构中的方式。它们被设计的尽可能自动化,但你仍需要知道何时构建和运行迁移,你还需要了解一些常见问题。

以下是几个常用的与迁移交互的命令,即 Django 处理数据库架构的方式:

  • migrate​,负责应用和撤销迁移。
  • makemigrations​,基于模型的修改创建迁移。
  • sqlmigrate​,展示迁移使用的 SQL 语句。
  • showmigrations​,列出项目的迁移和迁移的状态。

你应该将迁移看作是数据库架构的版本控制系统。 ​makemigrations ​负责将模型修改打包进独立的迁移文件中——类似提交修改,而 ​migrate ​负责将其应用至数据库。
每个应用的迁移文件位于该应用的​migrations​目录中,他们被设计成应用代码的一部分,与应用代码一起被提交,被发布。你只需在开发机上构建一次,就可以在同事的电脑或测试机上运行同样的迁移而保证结果一致。最后在生产环境运行同样的迁移。

通过修改配置 ​MIGRATION_MODULES ​可以重写包含迁移的应用的包名。

从同样的数据集合运行迁移在开发、测试和生产环境都会生成同样的结果。

Django 会在修改模型或字段时生成迁移——即便修改的是不会影响数据库的配置——因为唯一能确保结果正确性的方法时完整记录修改历史,而且这些东西你以后可能在某些数据迁移中用的到(例如,已设置了自定义验证器的时候)。