【发布时间】:2020-06-14 01:06:16
【问题描述】:
我有一个看起来像这样的 Django 模型
class RedUsers(BaseModel):
user_email = models.EmailField(null=True, blank=True)
user_name = models.CharField(max_length=30, null=True, blank=True)
red_id = models.CharField(max_length=30, null=True, blank=True)
active = models.BooleanField(default=False)
def __str__(self):
return self.user_email
class Meta:
verbose_name_plural = "Red Users"
我想添加一个新字段
activation_key = models.CharField(max_length=40, null=True, blank=True)
这个模型我已经有很多数据了,不能drop table,所以需要手动迁移。
我尝试从我的 0001_initial.py 文件中添加模型,但没有成功
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name='RedUsers',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True)),
('modified', models.DateTimeField(auto_now=True)),
('user_email', models.EmailField(blank=True, max_length=254, null=True)),
('user_name', models.CharField(blank=True, max_length=30, null=True)),
('red_id', models.CharField(blank=True, max_length=30, null=True)),
('active', models.BooleanField(default=False)),
],
options={
'verbose_name_plural': 'RED Users',
},
),
migrations.AddField(
model_name='redusers',
name='activation_key',
field=models.CharField(blank=True, max_length=40, null=True, verbose_name='activation key'),
),
]
当我跑步时
python manage.py migrate
它说您的模型具有尚未反映在迁移中的更改,因此不会应用。
我不知道还能做什么
【问题讨论】:
-
好吧,因为您可能已经迁移了。 Django 将该迁移文件的名称添加到表中,因此它认为迁移已完全完成。我认为最好简单地删除
AddField,然后运行makemigrations。它将创建一个具有另一个迁移名称的第二个文件。
标签: python django postgresql orm