您的位置:58脚本 > django 迁移 Django4.0 迁移-工作流程

django 迁移 Django4.0 迁移-工作流程

2023-03-19 09:32 Django4中文教程

django 迁移 Django4.0 迁移-工作流程

django 迁移

Django 迁移是一种自动化的过程,用于更新数据库表结构以及其他数据库对象,以便与 Django 模型保持一致。它使用 Django 的内部 API 来实现,并且可以在不同的数据库引擎之间进行迁移。

Django 迁移的工作原理是:当你在 Django 中创建或修改一个模型时,Django 会生成一个迁移文件(也就是“迁移”)。该文件包含了所有必要的 SQL 命令来将数据库表格升级到最新版本。然后你可以使用 Django 的 migrate 命令来执行这些命令,将数据库升级到最新版本。

# 创建迁移文件
python manage.py makemigrations [app_name]
# 执行迁移文件
python manage.py migrate [app_name]

Django 还具有一些高级功能,可帮助你在不同的开发阶段之间实施代码和数据库的变化。例如,你可以使用 Django 的 squashmigrations 功能来将多个迁移合并成一个单独的迁移;或者使用 fakemigrations 功能来将已存在的迁移标记为已执行(而不必真正执行它们)。

Django4.0 迁移-工作流程

Django 可以为你创建迁移。对你的模型进行修改——比如说,添加一个字段和删除一个模型——然后运行 ​makemigrations​:

$ python manage.py makemigrations
Migrations for "books":
  books/migrations/0003_auto.py:
    - Alter field author on book

你的模型将被扫描并与当前包含在你的迁移文件中的版本进行比较,然后将写出一组新的迁移。请务必阅读输出,看看 ​makemigrations ​认为你已更改的内容——它并不完美,对于复杂的更改,可能无法检测到你所期望的。
一旦有了新的迁移文件,就应该将它们应用于数据库,以确保它们可以按预期工作:

$ python manage.py migrate
Operations to perform:
  Apply all migrations: books
Running migrations:
  Rendering model states... DONE
  Applying books.0003_auto... OK

一旦应用了迁移,将迁移和模型更改作为一个单一的提交来提交到您的版本控制系统——这样,当其他开发人员(或你的生产服务器)检查代码时,他们将同时获得对你的模型的更改和伴随的迁移。
如果您你给迁移赋予一个有意义的名称而不是生成的名称,则可以使用 ​makemigrations --name选项:

$ python manage.py makemigrations --name changed_my_model your_app_label

版本控制

由于迁移存储在版本控制中,因此你有时会遇到这样的情况:你和另一个开发人员都同时向同一应用提交了迁移,从而导致两次迁移的编号相同。
别担心——这些数字只是给开发者参考的,Django 只在乎每个迁移都有不同的名称。 迁移在文件中指定了它们所依赖的其他哪些迁移——包括同一应用中的早期迁移,所以可以检测到同一应用有两个新的迁移没有排序。
当这种情况发生时,Django 会提示你,并给你一些选项。如果它认为足够安全,它将为你自动线性化两个迁移。如果不安全,你就得自己去修改迁移。


阅读全文
以上是58脚本为你收集整理的django 迁移 Django4.0 迁移-工作流程全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS