Django无法添加新表

Yax*_*Yax 2 django

我似乎无法能够添加更多的表,我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.

Dan*_*man 5

通过从syncdb开始,然后切换到迁移,您已陷入不一致的境地.迁移生成器无法知道您在其功能之外创建了初始表,因此将继续尝试自己创建它.

要恢复,您可以执行此操作.删除迁移,然后注释掉第二个模型的代码.makemigrations然后运行migrate --fake,以使记录达到您实际所在的位置.现在,取消注释你的第二个模型,然后makemigrations重新运行; 之后,migrate应该正常工作来创建第二个表.

将来,请确保始终使用迁移.(事实上​​,在最新版本的Django中这不是问题,因为syncdb已被删除.)