Django框架提供的migrations是一个独立的机制,主要用以在Django应用中的model类和数据库结构的schema之间进行同步。
1. Django应用中的model类
model是业务逻辑的数据对象,包含fields和behaviors。
一种model类就是django.db.models.Model类的扩展。
一种model对应数据库中的一张表。
在myFirstDjangoSite/myFirstApp/models.py中,创建model类的示例如下:
from django.db import models
class MyModel(models.Model):
...
2. migrations文件
在Django应用中,migrations是一系列文件,位于Django应用的migrations目录下,用以存储Django应用中的model类的变化。
每次在Django应用中对model类的修改,都会对应一个migration文件。
一个migration文件与数据库结构的schema的一个版本对应。
从文件名看,migrations文件也是Python软件模块,其中包含各种用以操作数据库的django.db.migrations.operations对象。
3. Django框架中的migrations实现
通过django.db.migrations软件包实现migrations的业务逻辑;
通过SchemaEditor与各种不同的数据库服务器交互,支持多种数据库服务器。
4. migrations相关命令
MIGRATION_MODULES = {
'mylists': 'mylists.db_migrations'
}
命令示例:
python manage.py makemigrations mylists
python manage.py migrate
python manage.py sqlmigrate mylists 0001
参考链接:
https://docs.djangoproject.com/en/1.11/topics/migrations/
https://docs.djangoproject.com/en/1.11/ref/django-admin/#django-admin-migrate
https://docs.djangoproject.com/en/1.11/ref/schema-editor/