[django同步数据库]Django数据库同步south使用

使用过django数据库的都知道django的数据库同步管理限制的比较死,修改models中的模型结构后,通过syncdb并不能将修改反应到数据库上,只能是删除表,重新syncdb。对于线上项目,这种方式显然是不能满足实际需要的。经过群里面网友推荐,试着使用了south。确实还不错的。

安装

直接用pip安装就好了,不做详细介绍

迁移到south

这里要分几种情况,每种情况的迁移步骤不同。

2.1创建一个没有数据库的新项目

a.将south添加到settings.py的INSTALLED_APPS中

b.运行syncdb,将south相关数据同步到数据库中

c.将后续创建的app添加到INSTALLED_APPS中

d.对每个app分别运行"pythonmanage.pyschemamigrationapp_name--initial",将在每个app目录下创建migration目录和相应的文件

f.运行“pythonmanage.pymigrateapp_name”,将app的数据表加入到数据库中

2.2已经使用的数据库的已存项目中使用south

a.将south加入到INSTALLED_APPS中

b.运行syncdb,将south的数据库加入到数据库中

c.对每个app分别运行pythonmanage.pyschemamigrationapp_name--initial,将在每个app的目录下创建migration目录和相应的文件

d.对每个app分别运行pythonmanage.pymigrateapp_name0001--fake,该命令会欺骗south,让他在south_migrationhistory表中添加一些记录以便于下次想创建migration文件时将所有事情搞定。

2.3未使用数据库的项目中

a.将south加入到settings.py中的INSTALL_APPS中

b.对每个app分别运行pythonmanage.pyschemamigrationapp_name--initial将在每个app目录下创建migration目录和相应的文件

c.运行syncdb将所有没migrations的apps加入到数据中

d.运行pythonmanage.pymigrate将对所有apps进行迁移操作。

3.后续操作

完成2中的操作后,后续如果如果修改models.则在修改后执行以下命令即可更新数据库

http://www.loonapp.com/blog/30/manage.pyschemamigrationapp_name--auto

http://www.loonapp.com/blog/30/manage.pymigrateapp_name

猜你喜欢

转载自www.cnblogs.com/sqlserver-mysql/p/12711274.html