在Django中,迁移不应用于数据库

2024-06-16 13:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过删除一个字段并添加一些字段以及添加一个新表来更新数据库中表的某些字段。我运行:

python manage.py makemigrations
python manage.py migrate

我没有发现任何变化,也没有应用任何变化。在

在django admin中,我看不到新表,当我单击addanewrecord into the database时,它会显示旧字段。这也反映在数据库中,因为它显示旧字段而不是新表。在

我删除了数据库中的所有表,删除了每个应用程序中的所有迁移,离开了init.py,但我仍然得到了这个错误,因为它如何显示我删除的旧字段,并且在删除表和迁移时没有记录?在

问题代码:

^{pr2}$

如果您需要任何澄清或有任何问题,请询问。在

编辑:我可以从字面上删除我在模型中的所有代码,并且仍然不会检测到任何更改。在

编辑2:将迁移代码上载到pastebin:http://pastebin.com/GywuiCZj

编辑3:我正在编辑的应用程序是catalog,我已安装的应用程序:

INSTALLED_APPS = [
    'profiles',
    'contact',
    'crispy_forms',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'stripe',
    'checkout',
    'catalog',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Tags: django代码py数据库应用程序编辑manageadmin
2条回答

可能由于某些原因,迁移文件被标记为已迁移。在

注: 1如果这是此应用程序中的第一个迁移文件,则文件名的首字母应为0001。可能您之前有一个名为的迁移文件,您可以将其删除。在

  1. 另外,我建议在已安装的应用程序中保留所有的django应用程序,即django.contrib.admin, django.contrib.auth公司... 在你的自定义应用程序之上。在

最后,如果一切都不起作用,您可以解除对迁移文件的破坏。在

Python管理.py迁移假核心0003

Python管理.py迁移假核心0 (注意这一点。它将解除对所有迁移文件的破坏)

然后呢

参考号:fake/unfake migration

如果您的catalog没有任何数据,并且可以安全地删除与catalog应用程序相关的表,则可以执行以下操作。在

  1. 如果您使用的是MySQL,DELETE FROM django_migrations where app = 'catalog'
  2. 删除catalog\migrations中的所有迁移。在
  3. 现在做python manage.py makemigrations catalog。在

另一方面,在设置.py是django应用程序第一,第三方应用程序第二,你自己的应用程序第三。在

相关问题 更多 >