【问题标题】:' No migrations to apply' after Django migrationDjango 迁移后“没有要应用的迁移”
【发布时间】:2020-08-30 19:58:18
【问题描述】:

我创建了一个名为“contact”的新应用,并将其添加到 installed_apps,但我无法在 SQLite 数据库中创建表!

Django 版本 = 3.1

python manage.py makemigrations contact

在应用“联系人”中未检测到更改

然后为:python manage.py migrate contact

要执行的操作: 应用所有迁移:(无) 运行迁移: 没有要应用的迁移。

我在这里尝试了许多成员提出的解决方案,但都没有奏效

就像检查迁移文件夹中存在的“init”文件,它是空的或者像这样的命令:

python manage.py migrate --fake contact zero

要执行的操作: 取消应用所有迁移:联系 运行迁移: 没有要应用的迁移。

python manage.py migrate contact --fake-initial

要执行的操作: 应用所有迁移:(无) 运行迁移: 没有要应用的迁移。

【问题讨论】:

  • 这里是 Django 初级开发人员:你试过运行“python manage.py makemigrations”吗?而不是指定您要迁移的模型。另外,你有没有在 Contact.models.py 文件上写过模型?
  • 是的,我在添加应用名称之前已经尝试过了

标签: python django sqlite


【解决方案1】:

这对我有用;

python manage.py makemigrations --empty yourappname

python manage.py migrate yourappname

事实证明,添加一个额外的空迁移会迫使 django 重新检查表,并且在此过程中,它注意到了新的迁移。可能某处发生了一些缓存。

Original answer

【讨论】:

  • 您能否提供更多解释说明为什么这在您的答案中有效
  • 我忽略了这一点,但它也对我有用。
【解决方案2】:

尽量不要使用您的应用名称。

例如。

python manage.py makemigrations

python manage.py migrate

如果不工作。你可以做一些更冒险的事情。转到您的项目的目录。将数据库带到另一个文件夹。执行与上述相同的命令。

【讨论】:

    猜你喜欢
    • 2019-06-23
    • 2017-06-24
    • 2016-04-14
    • 1970-01-01
    • 2018-10-24
    • 2020-10-14
    • 2019-12-24
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多