返回信息流[ema23]背景:django 1.5.4,数据库迁移采用的是south,我的应用tomato已经创建了十几个模型,同时在数据库中也创建完了相应的数据表,现在我又重新添加了一个模型,想要实现的目的是通过迁移在数据库中创建对应的数据表
现在的问题是:在数据库中添加不了新表啊
问题:
1、运行这个:
结果是这个:
2、运行迁移:
python manage.py migrate tomato
结果出错了是这个:
尝试了下解决办法:python manage.py migrate tomato --fake
结果却是这个:
求大神指点[ema23][ema23][ema23]
这是一条镜像帖。来源:北邮人论坛 / python / #13207同步于 2016/4/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
django数据迁移问题求助
wahahaa
2016/4/7镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
呃呃。。。不是给迁到别的数据库,是在现有的数据库中再新添加一张表(就是现有数据库中的数据表不动),我这样表述不知道对不对[em21]
【 在 iamluo 的大作中提到: 】
: 不太懂~~你迁移的目的是为了在当前数据库复制表?而不是将表迁移到别的数据库么
哦,那确定新添加的表没有跟已有表重名?
【 在 wahahaa 的大作中提到: 】
: 呃呃。。。不是给迁到别的数据库,是在现有的数据库中再新添加一张表(就是现有数据库中的数据表不动),我这样表述不知道对不对[em21]
: 【 在 iamluo 的大作中提到: 】
: : 不太懂~~你
: .........
木有吧,我的类名和之前已经存在的类名完全都不搭啊,我添加的是Service类,运行pyhon manage.py schemamigration tomato --initial 以后的截图明明是显示了Add model tomato.Service(我的第二个截图里面红笔圈出来的部分就是有关我新添加的类的信息),可是它运行python manage.py migrate tomato以后就报了图三的错误了呢[em19]
【 在 iamluo 的大作中提到: 】
: 哦,那确定新添加的表没有跟已有表重名?
我没用过老版的django,命令还不太一样~~不过你运行pyhon manage.py schemamigration tomato --initial
是默认选择了所有迁移文件么?为何不指定0039那个?
不行的话,把migrations文件夹的xxx_initial.py文件都删了,再迁移一次试试
啊啊,我解决了,谢谢你哈,我又去查了下south,我给搞错了,这个项目之前是已经运行过了python manage.py schemamigration tomato --initial 产生了0001_initial.py文件,我现在只是在人家的基础之上重新添加了一个Service类而已,所以不应该再运行python manage.py schemamigration tomato --initial 了,应该直接运行 python manage.py schemamigration tomato --auto 检查模型发生了些哪些改变以后再运行 python manage.py migrate tomato 进行数据库迁移就可以了,谢谢你,嗯嗯~