【问题标题】:python manage.py migrate does not create a tablepython manage.py migrate 不创建表
【发布时间】:2020-06-01 09:19:43
【问题描述】:

我使用 postgresql,我的 python 版本是 3.7 我已经尝试了所有命令

python manage.py makemigrations

这会在迁移中创建一个名为 0001_initial.py 的文件

# Generated by Django 2.2.10 on 2020-02-17 12:01

从 django.db 导入迁移、模型

类迁移(migrations.Migration):

initial = True

dependencies = [
]

operations = [
    migrations.CreateModel(
        name='Support',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('name', models.CharField(max_length=40)),
            ('email', models.EmailField(max_length=254)),
            ('message', models.TextField()),
        ],
    ),
]

现在当我传递迁移命令时,

python manage.py migrate

它显示“没有要应用的迁移”

    (myvenv) C:\nid\project>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, scholarship, sessions
Running migrations:
  No migrations to apply.

这是我的 models.py 类:

    from django.db import models
from django.utils import timezone

# Create your models here.


class Support(models.Model):
    name = models.CharField(max_length=40)
    email = models.EmailField()
    message = models.TextField()

    def __str__(self):
        return self.name

我知道以前有人问过这个问题。我检查了所有但没有答案能够解决这个问题。请帮忙

【问题讨论】:

  • 模型Support属于哪个app?

标签: python django database postgresql migrate


【解决方案1】:

一般来说,这意味着该表已经存在于您的数据库中。 我建议您尝试删除您的表,然后使用py manage.py migrate 重新创建它。

如果您还有其他问题,请回复

【讨论】:

  • 我从 django_migrations 表中删除了该条目并再次尝试,现在它工作正常
  • 完美。您可以将您的解决方案添加为其他有相同问题的用户的答案
  • 附带说明:如果原因是该表在运行迁移之前已经存在,则结果将是一个 db 错误(尝试创建一个已经存在的表),而不是“没有迁移申请”消息。 OP 在这里做了正确的事情(注意:对于这种非常特殊的情况,我的意思是):从迁移历史记录表中删除条目。
【解决方案2】:

有点旧帖子,但我刚刚遇到了同样的问题,只需运行即可解决它:
python manage.py makemigrations
python manage.py migrate --run-syncdb

【讨论】:

    猜你喜欢
    • 2021-06-01
    • 2014-06-07
    • 1970-01-01
    • 2020-07-02
    • 2017-12-25
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多