gpt4 book ai didi

即使模型没有改变,django 也会继续创建新的迁移

转载 作者:行者123 更新时间:2023-12-05 04:01:45 24 4
gpt4 key购买 nike

以下是我的模型:

class Biovariable(models.Model):
bioid = models.AutoField(primary_key=True, unique=True)
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
units = models.ForeignKey(unit, on_delete=models.CASCADE)
def __str__(self):
return self.name


class Biovariable_data(models.Model):
biovar = models.ForeignKey(Biovariable, on_delete=models.CASCADE)
value = models.CharField(max_length=2000)
evdate = models.CharField(max_length=30)
evtime = models.CharField(max_length=30)
linkedcustomer = models.ForeignKey(customer, on_delete=models.CASCADE)
linkeddoctor = models.ForeignKey(doctor, on_delete=models.CASCADE)
linkedclinic = models.ForeignKey(Clinic, on_delete=models.CASCADE)
class Meta:
unique_together = [
"biovar", "value", "evdate", "evtime", "linkedcustomer",
"linkeddoctor", "linkedclinic"
]

每次我运行 makemigrations 时,django 都会不断创建新的迁移,我不明白为什么。

joel@hp:~/myappointments$ ./manage.py makemigrations
Migrations for 'appointments':
appointments/migrations/0010_auto_20190310_2138.py
- Add field dob to customer
- Alter field biovar on biovariable_data
joel@hp:~/myappointments$ ./manage.py migrate
Operations to perform:
Apply all migrations: admin, appointments, auth, clinic, contenttypes, sessions
Running migrations:
Applying appointments.0010_auto_20190310_2138... OK
joel@hp:~/myappointments$ ./manage.py makemigrations
Migrations for 'appointments':
appointments/migrations/0011_auto_20190310_2139.py
- Alter field biovar on biovariable_data
joel@hp:~/myappointments$ ./manage.py makemigrations
Migrations for 'appointments':
appointments/migrations/0012_auto_20190310_2139.py
- Alter field biovar on biovariable_data
joel@hp:~/myappointments$ ./manage.py migrate
Operations to perform:
Apply all migrations: admin, appointments, auth, clinic, contenttypes, sessions
Running migrations:
Applying appointments.0011_auto_20190310_2139... OK
Applying appointments.0012_auto_20190310_2139... OK
joel@hp:~/myappointments$ ./manage.py makemigrations
Migrations for 'appointments':
appointments/migrations/0013_auto_20190310_2140.py
- Alter field biovar on biovariable_data
joel@hp:~/myappointments$

其中一个迁移文件如下所示:

# Generated by Django 2.1.3 on 2019-03-10 16:09
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('appointments', '0010_auto_20190310_2138'),
]
operations = [
migrations.AlterField(
model_name='biovariable_data',
name='biovar',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='appointments.Biovariable'),
),
]

最佳答案

我遇到了同样的问题,但我的模型中没有任何内容是动态的。在更改相关模型的名称后,我发生了这种情况。 (作为引用,它是多对多直通模型,我将其从“注册”重命名为“注册”)。

回答以提供更明确的解决方案:

# 1 - Roll back migrations
python manage.py migrate <app_name> zero>

# 2 - Delete the migration files

# 3 - Make a new migration
python manage.py makemigrations <app_name>

关于即使模型没有改变,django 也会继续创建新的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55089705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com