Django migrate 原理和规范

本文介绍了Django的数据库迁移操作,包括makemigrations和migrate步骤。讨论了如何生成迁移文件,迁移数据的注意事项,以及数据库迁移的原理。强调了在数据库已有数据时新增字段需要设置默认值,同时提出了团队开发中migrations文件的版本控制重要性。当数据库与迁移文件不同步时,提供了恢复策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django migrate规范

概述

Django的数据库相关的迁移操作,大体包括makemigrations和migrate两个步骤。

  1. 生成迁移文件
    修改models - 添加一个field或者删除一个model - 然后运行makemigrations:
$ python manage.py makemigrations
Migrations for 'books':
  books/migrations/0003_auto.py:
    - Alter field author on book

在所有迁移文件过程中,models将扫描并比较最近的版本文件,然后生成一系列新的migrations。然而这个迁移命令并不完美,有些复杂情况可能没有处理好导致迁移失败。最好,可以去检查下migrations,新的改变会不会导致冲突。

  1. 迁移数据
    一旦生成了新的迁移文件,为了迁移作用于数据库,应该执行以下指令:
$ python manage.py migrate
Operations to perform:
  Apply all migrations: books
Running migrations:
  Rendering model states... DONE
  Applying books.0003_auto... OK

还可以为migration(s),取个名字–name,并且可以指定某个app your_app_label:

$ python manage.py makemigrations --name changed_my_model your_app_label
  1. 查看迁移状态 - 在数据库中,已经生效的[X] ,还未生效的[ ]
F:\experiments\my_blog>python manage.py showmigrations
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值