我正在使用Django应用程序,我已经迁移了我的基本模型。没有数据保存到表示此模型的表中(我使用PostgreSQL)。我之后在原始模型类下添加了一个新变量,如:
time_entered = models.DateTimeField(auto_now_add=True)
我必须以无效格式输入默认时间,可能是default = datetime.datetime.now()
,因为当我尝试迁移新变量时,Django给了我一个错误:
正在运行迁移:
应用app.0002_model_time_entered ...追溯:
...
django.core.exceptions.ValidationError:["'' value具有invali格式。它必须是YYYY-MM-DD HH:MM [:ss [.uuuuuu]] [TZ]格式。"]
我已评论time_entered
,我已使用Django的时区将默认值设置为正确的格式,并且我已将默认值设置为a字符串格式正确。每次,当我尝试makemigrations
和migrate
时,我都会得到同样的错误,而Django不会将我的更改提交给数据库。当我尝试用sqlmigrate
查看SQL命令时,我甚至得到了错误。 (为了澄清,sqlmigrate
适用于最近makemigrations
但稍有更改的内容,但不适用于发生实际错误的早期未提交makemigration
次尝试。)
我该怎么办?我怎样才能让Django不再顽固,放弃那个旧的错误的SQL命令?有没有办法从makemigration
中删除任何未提交的SQL命令?我现在无法migrate
任何事情。
答案 0 :(得分:1)
已使用和未使用的迁移在./app/migrations中挂起。我在初始迁移后删除了所有迁移文件,然后运行了一个没有格式错误的新makemigrations
。
我不满足于此作为解决方案。我仍然希望听到更好的答案。
答案 1 :(得分:1)
https://south.readthedocs.org/en/latest/tutorial/part3.html
./ manage.py schemamigration [myapp] --auto --update
回滚上次迁移