【问题标题】:django 1.7 migrations: changes detected while nothing has changeddjango 1.7 迁移:检测到更改而没有任何更改
【发布时间】:2014-10-14 21:36:04
【问题描述】:

django 1.7 中的makemigrations 命令如何检测到变化?

我有一个问题,它总是告诉我我的一个领域有变化,而没有。当我运行该命令时,它只是一遍又一遍地写入相同的迁移文件,没有任何变化。

该字段是一个自定义字段,我在该字段上实现了 deconstruct 方法,并且有一些参数是对象,因此我使用了 deconstructible 装饰器。

我在 github 上创建了一个复制问题的项目:https://github.com/YAmikep/django-testmigrations

我做错了什么?这是一个错误吗?

这是我跑的:

/projects/testmigrations$ python manage.py makemigrations app1
Migrations for 'app1':
  0001_initial.py:
    - Create model ModelA
/projects/testmigrations$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, contenttypes, auth, app1, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying app1.0001_initial... OK
  Applying sessions.0001_initial... OK
/projects/testmigrations$ python manage.py makemigrations
Migrations for 'app1':
  0002_auto_20141014_2123.py:
    - Alter field field1 on modela
/projects/testmigrations$ python manage.py makemigrations
Migrations for 'app1':
  0003_auto_20141014_2123.py:
    - Alter field field1 on modela

迁移文件 0002_auto_20141014_2123.py 和 0003_auto_20141014_2123.py 包含完全相同的操作:

operations = [
    migrations.AlterField(
        model_name='modela',
        name='field1',
        field=app1.models.CustomField(max_length=50, value_manager=app1.models.ValueManager(values=[app1.models.Value(val=1), app1.models.Value(val=2)])),
    ),
]

【问题讨论】:

    标签: django django-1.7 django-migrations


    【解决方案1】:

    问题好像和https://code.djangoproject.com/ticket/23473中的一样

    解决方案是在标记为可解构的类上添加__eq__ 方法。

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2014-09-14
      • 2021-09-19
      • 2019-05-30
      • 2020-07-02
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多