我使用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导入迁移,模型
类迁移(迁移.迁移):
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
我知道以前有人问过这个问题,我都查过了,没有一个答案能解决这个问题,请帮帮忙
3条答案
按热度按时间umuewwlo1#
有点旧的职位,但我刚刚遇到了同样的问题,并能够修复它只需运行:
python manage.py makemigrations
python manage.py migrate --run-syncdb
0x6upsns2#
一般来说,这意味着该表已经存在于您的DB中,我建议您尝试删除该表,然后使用
py manage.py migrate
重新创建它。如有进一步问题请回复
yptwkmov3#
所以在幕后发生的是:
运行以下命令时:
python manage.py makemigrations
将根据模型或模型更改创建迁移文件。
运行时:
python manage.py migrate
Django使用migrations文件夹中新创建的文件,并相应地执行操作,并在表
django_migrations
中创建相应的条目(类似日志)。现在,即使您从DB中删除表,从文件夹中删除迁移文件,migrate命令也不会起作用,因为创建的新文件将始终命名为'0001_initial.py',因为您已经删除了以前的迁移文件。
如果你浏览表格'django_migrations',你会发现一个条目包含你的app_name和migrations文件名。
我的应用程序0001_初始
Django总是假设迁移已经运行过了,不会再运行。
如何修复?
**选项1:**x1米3米1
**选项2:**删除与上次迁移文件名冲突的特定条目/或要运行的条目/或与该应用程序相关的所有条目