Django 自 1.7 之后增加了类似 South 的 migration 功能,修改 Model 后可以在不影响现有数据的前提下重建表结构。这真是个千呼万唤始出来的 feature 了
一、migration 介绍
Migrations 其实就是一堆帮助你完成数据库变更和数据迁移的命令,使得你可以用 “Django” 的方式来管理和变更数据库的 schema。
1.1 特性
Migrations让事情变得简单可控:
- 它使得数据库 schema 的调整可以通过Django命令来完成
- 它使得数据库的 schema 和对应的 model 的变更被 track 起来:整个历史都可以版本化在 Git 里面
- 提供了一套匹配 schema 和对应的 fixture 的机制
- 如何和 CI 搭配起来,可以保证代码和数据一致性
1.2 创建 migrations
当有新的 models 创建或者变更的情况下,需要创建一个 migration
1 |
# python manage.py makemigrations <appname>
Migr |