Django的migrations机制概述
2017-09-28 12:50
357 查看
Django框架提供的migrations是一个独立的机制,主要用以在Django应用中的model类和数据库结构的schema之间进行同步。
1. Django应用中的model类
model是业务逻辑的数据对象,包含fields和behaviors。
一种model类就是django.db.models.Model类的扩展。
一种model对应数据库中的一张表。
在myFirstDjangoSite/myFirstApp/models.py中,创建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相关命令
makemigrations
基于当前的models类创建一个新的migration文件
同时修改myproject/myproject/settings.py中的MIGRATION_MODULES变量的值
migrate
将当前的migration文件内容持久化到数据库中
sqlmigrate
根据输入的migrations名称,输出对应的SQL语句
showmigrations
显示出Django项目中的所有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/
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相关命令
makemigrations
基于当前的models类创建一个新的migration文件
同时修改myproject/myproject/settings.py中的MIGRATION_MODULES变量的值
MIGRATION_MODULES = { 'mylists': 'mylists.db_migrations' }
migrate
将当前的migration文件内容持久化到数据库中
sqlmigrate
根据输入的migrations名称,输出对应的SQL语句
showmigrations
显示出Django项目中的所有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/
相关文章推荐
- SQL SERVER的锁机制(一)——概述(锁的种类与范围)
- 26 API-网络编程(网络概述,Socket通信机制,UDP协议发送和接收数据,TCP协议发送和接收数据)
- Android 安全机制概述
- Django 模板查找机制
- Django: csrf防御机制 以及解决方法
- Django 是如何实现用户登录和登出机制的(默认版本-数据库版本)
- 安卓安全机制概述permission
- UML基本架构建模--通用机制概述
- django migrations
- .NET下的多线程编程—1-线程机制概述
- Windows消息机制概述
- SSL/TLS协议运行机制的概述
- Linux信号机制概述
- SSL/TLS协议运行机制的概述
- Tomcat类加载机制概述
- [Django实战] 第1篇 - 概述
- Django实战(8):对比RoR与Django的输入校验机制
- Django项目概述(1)
- Touch事件传递机制-详细概述
- SSL/TLS协议运行机制的概述