Django 模型,增加新价值,迁移

Django models, adding new value, migrations

我使用 django 1.9 并向 myapp/models.py 添加了一个新字段 (creation_date)。 之后我运行"python manage.py makemigrations"。我得到了:

Please select a fix:

  1. Provide a one-off default now (will be set on all existing rows)
  2. 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