我们简单介绍下django 数据库同步的工具:
参考地址:http://blog.sina.com.cn/s/blog_63041bb80101fdk5.html
https://docs.djangoproject.com/en/1.7/topics/migrations/
1. syncdb
django自带了一个简易的数据库同步工具:syncdb
./manage.py syncdb 根据models.py创建数据库表
./manage.py validate 检验数据模型代码是否正确
./manage.py sql 显示表创建的sql脚本
./manage.py sqlall sql命令的基础上,增加创建数据库sql脚本
./manage.py sqlindexes 显示主键索引创建的sql脚本
./manage.py sqlclear 显示表删除的sql脚本
./manage.py sqlreset 删除表,然后重新创建表
./manage.py sqlcustom 显示.sql文件中的自定义sql语句
./manage.py loaddata 加载初始值
./manage.py dumpdata 将数据备份到 JSON 或者 XML
从上面可以看出,自带syncdb工具对于数据库更新比较麻烦。
2. southmakemigrations
针对django自带的syncdb同步models和数据库的缺陷开发的数据迁移工具,可以作为syncdb的替代,South能够检测对models的更改并同步到数据库。
但是由于django1.7版本之后就已经不支持south了,所以我这里就不多描述它的使用了。
3. migrations
Django migrations从1.7版本之后支持。
Migrations是django自带的一种 把models中的修改同步到数据库 的解决方案。
migrations命令如下:
makemigrations -- 当你修改了model时,此命令根据changes创建新的migrations文件
migrate -- 用来提交产生的migrations文件到数据库,类似与commit,同时还可以listing their status
sqlmigrate -- 为migrations显示SQL语句
使用流程也是先makemigrations 产成文件,然后migrate 提交migrations到数据库。
其实说白了Django migrations就是数据库表结构的一个版本控制系统。