Django 模型,增加新价值,迁移
Django models, adding new value, migrations
我使用 django 1.9 并向 myapp/models.py 添加了一个新字段 (creation_date)。
之后我运行"python manage.py makemigrations"。我得到了:
Please select a fix:
- Provide a one-off default now (will be set on all existing rows)
- Quit, and let me add a default in models.py."
我选择了第一个选项并以错误的格式“10.07.2016”添加了值。
在这个错误之后我不能 运行 "python manage.py migrate".
所以我决定更改 models.py 并添加默认值 "datetime.now"。
但在那之后我仍然对 "python manage.py makemigrations" 有疑问。我看到这样的事情:
django.core.exceptions.ValidationError: [u"'10.07.2016' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
如何解决这个问题?
只要您的迁移未应用于数据库,您就可以手动更新位于 myapp/migrations/*.py
中的迁移文件。找到字符串“10.07.2016”并将其更新为受支持的格式。
一个不太吸引人的解决方案是删除旧的迁移文件(只要它不应用于数据库)并使用 python manage.py makemigrations
创建一个新的迁移文件。因为您已将模型更新为使用默认值,所以这次不会要求一次性默认值。
检查迁移是否应用于数据库运行:python manage.py showmigrations
。
我使用 django 1.9 并向 myapp/models.py 添加了一个新字段 (creation_date)。 之后我运行"python manage.py makemigrations"。我得到了:
Please select a fix:
- Provide a one-off default now (will be set on all existing rows)
- Quit, and let me add a default in models.py."
我选择了第一个选项并以错误的格式“10.07.2016”添加了值。 在这个错误之后我不能 运行 "python manage.py migrate".
所以我决定更改 models.py 并添加默认值 "datetime.now"。 但在那之后我仍然对 "python manage.py makemigrations" 有疑问。我看到这样的事情:
django.core.exceptions.ValidationError: [u"'10.07.2016' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
如何解决这个问题?
只要您的迁移未应用于数据库,您就可以手动更新位于 myapp/migrations/*.py
中的迁移文件。找到字符串“10.07.2016”并将其更新为受支持的格式。
一个不太吸引人的解决方案是删除旧的迁移文件(只要它不应用于数据库)并使用 python manage.py makemigrations
创建一个新的迁移文件。因为您已将模型更新为使用默认值,所以这次不会要求一次性默认值。
检查迁移是否应用于数据库运行:python manage.py showmigrations
。