【发布时间】:2020-11-11 04:25:26
【问题描述】:
之前我的一个 MySQL 表中添加了一个字段:
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2017-09-14 00:49
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('my_app', '0102_previous_migrations'),
]
operations = [
migrations.AddField(
model_name='my_client',
name='my_team',
field=models.CharField(choices=[('Unassigned', 'Unassigned'), ('ACT', 'ACT'), ('Korea', 'Korea'), ('National', 'National')], default='Unassigned', max_length=255, verbose_name='My Team'),
),
]
所以用户可以在我的 UI 中选择上述选项,并将保存到表 my_client 中:
- 未分配
- 行动
- 韩国
- 全国
更改已部署,现在像我这样的初学者想要更改,即删除韩国并添加 2 个新选择:NSW 和 SA
我该怎么做呢?我是否需要再次迁移,还是只需要更改模型中的这些选择?
我现在像这样在我的模型中使用它:
class Client(MyAppModel):
TEAM_CHOICES = (
('Unassigned', 'Unassigned'),
('ACT', 'ACT'),
('Korea', 'Korea'),
('National', 'National'),
)
DEFAULT_TEAM = 'Unassigned'
my_team = models.CharField(verbose_name='MyTeam', null=False, max_length=255, choices=TEAM_CHOICES, default=DEFAULT_TEAM)
更新:
根据我的评论,我也需要迁移,AlterField?
如果我想删除韩国作为选择,我是否还必须立即更新表 my_client 中的所有现有值?我可以在迁移中使用什么命令?
【问题讨论】:
-
感谢@solarissmoke,如果迁移并没有显示出只是选择的变化,迁移会是什么样子?
-
它应该只显示不断变化的选择。你的是什么样子的?