gpt4 book ai didi

Django 无法添加新表

转载 作者:行者123 更新时间:2023-12-04 17:18:05 27 4
gpt4 key购买 nike

我似乎无法向我的 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, "Table 'myapp_mytable' already exists") 并且迁移命令没有给出任何错误,但是没有创建表。

模型.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

注意:我使用的是 Django 1.7。

最佳答案

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

要恢复,您可以这样做。删除您的迁移,然后注释掉第二个模型的代码。运行 makemigrations,然后运行 ​​migrate --fake,使记录达到您实际所在的位置。现在,取消注释您的第二个模型,然后再次运行 makemigrations;之后,migrate 应该可以正常工作以创建第二个表。

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

关于Django 无法添加新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com