我的app里有一个模型:
class PutAwayProductsPosition(models.Model):
products = models.ForeignKey(Product, on_delete=models.CASCADE)
put_position = models.CharField(max_length=50, default=0)
is_put = models.BooleanField(default=False)
class PutAway(models.Model):
warehouse = models.ForeignKey(Warehouse, on_delete=models.CASCADE)
grn = models.ForeignKey("grn.GRN", on_delete=models.CASCADE)
employee_assigned = models.ForeignKey(Employee, on_delete=models.CASCADE)
putaway_id = models.IntegerField(default=0)
products_position = models.ManyToManyField(PutAwayProductsPosition)
completely_executed = models.BooleanField(default=False)
partially_executed = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
scheduled_datetime = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
每次运行makemigrations
时,都会在迁移中创建一个文件,如下所示
class Migration(migrations.Migration):
dependencies = [
('grn', '0068_auto_20230411_0703'),
('putpick', '0033_auto_20230410_0810'),
]
operations = [
migrations.AlterField(
model_name='putaway',
name='grn',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='grn.GRN'),
),
]
即使在模型中没有变化,我也会迁移它们,然后,如果我再次运行makemigrations
,则会在文件夹中创建此文件,我无法理解其中的原因。
我试图伪造移民,但得到了这个:
(venv) rahulsharma@Rahuls-MacBook-Air Trakkia-Backend % python manage.py migrate --fake putpick 0034_auto_20230411_0703
Operations to perform:
Target specific migration: 0034_auto_20230411_0703, from putpick
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
(venv) rahulsharma@Rahuls-MacBook-Air Trakkia-Backend % python manage.py makemigrations
Migrations for 'grn':
grn/migrations/0069_auto_20230411_0828.py
- Alter field grn on grntempscans
Migrations for 'putpick':
putpick/migrations/0035_auto_20230411_0828.py
- Alter field grn on putaway
(venv) rahulsharma@Rahuls-MacBook-Air Trakkia-Backend % python manage.py migrate
Operations to perform:
Apply all migrations: all apps name
Running migrations:
Applying grn.0069_auto_20230411_0828... OK
Applying putpick.0035_auto_20230411_0828... OK
现在当我再次运行makemigartions时,这两个被创建。
1条答案
按热度按时间avwztpqn1#
我看到您尝试进行的迁移有多个依赖项。多个依赖项可能是生成所面临错误的原因之一,在这种情况下,您可以尝试进行多个不同的迁移,每个迁移只有一个依赖项,然后运行
python manage.py makemigrations
甚至我最近也遇到了一个错误,它说我试图迁移的表已经存在,但我无法找到它,所以我试图假装迁移它,然后它确实迁移了。
请让我知道这是否有帮助,或者我们可以尝试寻找其他出路。