我似乎无法能够添加更多的表,我models.py通过python manage.py syncdb它被用来创建我最初的表,MyTable的包容性.我尝试过python manage.py makemigrations然后做过python manage.py migrate --fake <appname>甚至python manage.py migrate.
Syncdb给了我django.db.utils.OperationalError:(1050,"表'myapp_mytable'已经存在")并且迁移命令不会给出任何错误但是没有创建表.
Models.py:
class MyTable(models.Model):
#table details
#this table is already created.
class NewTable(models.Model):
#table details
#this is the table I want to add
Run Code Online (Sandbox Code Playgroud)
注意:我使用Django 1.7.
通过从syncdb开始,然后切换到迁移,您已陷入不一致的境地.迁移生成器无法知道您在其功能之外创建了初始表,因此将继续尝试自己创建它.
要恢复,您可以执行此操作.删除迁移,然后注释掉第二个模型的代码.makemigrations然后运行migrate --fake,以使记录达到您实际所在的位置.现在,取消注释你的第二个模型,然后makemigrations重新运行; 之后,migrate应该正常工作来创建第二个表.
将来,请确保始终使用迁移.(事实上,在最新版本的Django中这不是问题,因为syncdb已被删除.)
| 归档时间: |
|
| 查看次数: |
1176 次 |
| 最近记录: |