Django4 中文入门教程 Django4.0 迁移-向应用添加迁移

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

新的应用已预先配置为接受迁移,因此你可以在进行一些更改后通过运行 ​makemigrations ​添加迁移。

如果你的应用已经具有模型和数据库表,并且还没有迁移(例如,你是在先前的 Django 版本中创建的),则需要通过运行以下命令将其转换为使用迁移:

$ python manage.py makemigrations your_app_label

这将为你的应用程序进行新的初始迁移。现在,运行 ​python manage.py migrate --fake-initial​,Django 将检测到你有一个初始迁移 并且 它要创建的表已经存在,而将迁移标记为已应用。(如果没有 ​migrate --fake-initial​ 标志,该命令将出错,因为它要创建的表已经存在。)

请注意,这只适用于以下两种情况:

  • 自从你建立了表之后,你就没有改变过你的模型。要使迁移生效,你必须 首先 进行初始迁移,然后再进行更改,因为 Django 将变更与迁移文件(而不是数据库)进行比较。
  • 你尚未手动编辑数据库——Django 无法检测到你的数据库与你的模型不匹配,当迁移尝试修改这些表时,你只会得到错误。