south的使用总结

这里记录我的使用过程 


有一个项目之前是用django自带的syncdb来管理的,后面加入south来管理, 步骤:


1.先在installed_app中添加新的应用名称'south'

2. 同步一下,python manage.py syncdb --settings=prj.settings.test

3. 初始化之前的表结构, python manage.py schemamigration app --initial --settings=prj.settings.test 

如果有多个app,这一步可能得运行多次.这会在各app目录下生成类似0001_initial.py作为初始条件。

4.现在有新的需求,需要在model中添加一个字段,添加好后运行:

python manage.py schemamigration app --auto --settings=prj.settings.test 

这里又会生成一个py文件。

5.根据提示,这下运行:python manage.py migrate app --auto --settings=prj.settings.test ,完成 后会在数据库中添加新字段,并将此操作写入到south_migrationhistory这个表中,south会让生成的py文件与数据库中记录的保持一到处。(注意:如果出现django.db.utils.OperationalError: (1050, "Table 'table_name' already exists")这类错误,说明是有可能在数据库中不存在0001_initial的运行记录,这里可能需要手工添加这一条记录,以跳过执行初始化的语句)



注意:

1.如果出现表已经存在的错误 ,有可能是上一步中的记录没有写到south_migration表中去,一定要检查这里

2.如果出现类似什么GhostExcepion的错误,有可能是你手动删除了生成的py文件,这时还需要删除对应的表记录











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值