Python Django在管理模型时尝试添加现有字段

Python Django在管理模型时尝试添加现有字段,python,django,Python,Django,在管理模型时,如何阻止Django 2.2.4尝试创建已经存在的数据库列 我有两个模型,ticket和message,它们连接到第三方数据库中的表,因此这些模型是使用managed=False创建的。我正在远离第三方工具。票证模型不久前被其他人更改为managed=True,现在我正在尝试对消息模型执行相同的操作 以下是模型的相关部分: 来自django.db导入模型的 类消息(models.Model): mid=models.BigAutoField(db_column='mid',prim

在管理模型时,如何阻止Django 2.2.4尝试创建已经存在的数据库列

我有两个模型,ticket和message,它们连接到第三方数据库中的表,因此这些模型是使用
managed=False
创建的。我正在远离第三方工具。票证模型不久前被其他人更改为
managed=True
,现在我正在尝试对消息模型执行相同的操作

以下是模型的相关部分:

来自django.db导入模型的

类消息(models.Model):
mid=models.BigAutoField(db_column='mid',primary_key=True)
ticket=models.ForeignKey('ticket',on_delete=models.CASCADE,db_column='TID'))
author=models.CharField(db_column='author',最大长度=32)
date=models.DateTimeField(db_column='date')
internal=models.CharField(db_column='internal',max_length=1)
isoper=models.CharField(db_column='isoper',max_length=1)
headers=models.TextField(db_column='headers')
msg=models.TextField(db_column='msg')
类元:
#托管=错误
db_表='消息'
权限=(
(“可以改变自己的工作时间”,“可以改变自己的工作时间”),
(“可以改变自己最近的工作时间”,“可以改变自己最近的工作时间”),
(“可以更改下属工作时间”、“可以更改下属工作时间”),
)
这是通过注释掉
managed=False
生成的迁移:

#由Django 2.2.4于2020-06-18 20:56生成(0017_auto_20200618_1656)
从django.db导入迁移
类迁移(migrations.Migration):
依赖项=[
('troubleticket'、'0016_auto_20200511_1644'),
]
操作=[
migrations.AlterModelOptions(
name='message',
选项={'permissions':('can_change_own_worked_time','can change_own_recently_worked_time','can change_own_recently_worked_time','can change_Owner_recently_worked_time'),('can_change_Submitter_worked_time','can change Submitter Work,
),
]
#由Django 2.2.4于2020-06-18 21:14生成(0018_消息_票证)
从django.db导入迁移、模型
导入django.db.models.deletion
类迁移(migrations.Migration):
依赖项=[
('troubleticket'、'0017_auto_20200618_1656'),
]
操作=[
migrations.AddField(
model_name='message',
name='ticket',
field=models.ForeignKey(db_column='TID',default=1,on_delete=django.db.models.deletion.CASCADE,to='troubleticket.Ticket'),
preserve_default=False,
),
]
当我尝试应用这些迁移时,会出现以下错误:

django.db.utils.OperationalError: (1060, "Duplicate column name 'TID'")
最初的迁移没有包含TID列,后续的迁移也没有,所以我理解Django为什么认为它是一个新列。但是它不是一个新的专栏(自从第一次提交给git repo时,模型就有了它),所以我也理解MySQL为什么会抛出错误

这是初始迁移:

#由Django 2.0.8于2018-08-20 14:43生成(0001#首字母)
从django.db导入迁移、模型
类迁移(migrations.Migration):
初始值=真值
依赖项=[
]
操作=[
migrations.CreateModel(
name='Message',
田地=[
('mid',models.BigAutoField(db_column='mid',primary_key=True,serialize=False)),
('author',models.CharField(db_column='author',max_length=32)),
('date',models.DateTimeField(db_column='date')),
('internal',models.CharField(db_column='internal',max_length=1)),
('isoper',models.CharField(db_column='isoper',max_length=1)),
('headers',models.TextField(db_column='headers')),
('msg',models.TextField(db_column='msg')),
],
选择权={
“托管”:错误,
“db_表”:“消息”,
},
),
migrations.CreateModel(
name='Ticket',
田地=[
('id',models.BigIntegerField(db_column='id',primary_key=True,serialize=False)),
('accesskey',models.CharField(db_column='accesskey',max_length=64)),
('open',models.DateTimeField(db_column='open')),
('updated',models.DateTimeField(db_column='updated')),
('closed',models.DateTimeField(db_column='closed',null=True)),
('status',models.CharField(db_column='status',max_length=3)),
('oper',models.CharField(db_column='oper',max_length=32)),
('email',models.CharField(db_column='email',max_length=128)),
('name',models.CharField(db_column='name',max_length=128)),
('subject',models.CharField(db_column='subject',max_length=255)),
('lname',models.CharField(db_column='lname',max_length=50)),
('company',models.CharField(db_column='C0',max_length=255)),
('type',models.CharField(db_column='C1',max_length=255)),
('c2',models.CharField(db_column='c2',max_length=255)),
('c3',models.DecimalField(db_column='c3',小数位数=2,最大位数=6)),
('c4',models.CharField(db_column='c4',max_length=255)),
('pending',models.CharField(db_column='C5',max_length=255)),
('c6',models.CharField(db_column='c6',max_length=255)),
('c7',models.CharField(db_column='c7',max_length=255)),
('c8',models.CharField(db_column='c8',max_length=255)),
('cc',models.CharField(db_column='C9',max_length=255)),
('grp',models.CharField(db_column='grp',max_length=10)),
...
('field_already_present', models.FloatField(blank=True, null=True)),
...