django south使用记录

在web开发的中,我们经常都会碰到修改变换表的结构,然而在django的syncdb会在第一次数据库表不存在时,才
会将我们model层中的字段,生成相应的数据库,但之后并不能将model的修改或删除同步到数据库,
如果你修改或删除了一个model,syncdb不能做任何的处理。 当然从反面来说运行运行./manage.py syncdb
是安全的,它不会重复执行SQL语句。(我这里是加入写权限chmod +x manage.py 运行的)

对于这个问题,难道我们就通过启动数据库交互页面,来慢慢alter table插入数据库表?话说老兄你这也太土了吧。。。

现在来给介绍下我们高大上的South童靴。

什么是South:主要是专门做数据库表结构自动迁移的,将model中字段的修改变化,同步到我们数据库的表中。

使用方法如下:

一、安装

1、pip install South (还不知道pip的自己面壁去)

2、修改settings.py 在INSTALLED_APPS中加入’south’, 。不要忘记逗号!

3、执行./manage.py syncdb 现在south已经安装在你project中。

二、使用

初始化版本信息:

python manage.py schemamigration <app> --initial (初始化)
python manage.py migrate <app> --fake(告诉South 存在表) 

修改model后:

python manage.py schemamigration <app> --auto (对比之前的初始化版本)
python manage.py migrate <app>(修改表到数据库)

最后:South强大之处还不止这点,更多请参看官方文档

sitin wechat
扫一扫上面的二维码,订阅博客,领取资料!