gpt4 book ai didi

python - 让 Django 忘记一个不正确的 'makemigration'

转载 作者:行者123 更新时间:2023-11-29 12:12:24 24 4
gpt4 key购买 nike

我正在开发一个 Django 应用程序,我已经在其中迁移了我的基本模型。没有数据保存到表示该模型的表中(我使用的是 PostgreSQL)。我已经在原始模型类下添加了一个新变量,例如:

time_entered = models.DateTimeField(auto_now_add=True)  

我必须输入无效格式的默认时间,可能是 default = datetime.datetime.now(),因为当我尝试迁移新变量时 Django 给了我一个错误:

Running migrations:
Applying app.0002_model_time_entered... Traceback:
...
django.core.exceptions.ValidationError: ["'' value has an invali format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

我已经注释掉了 time_entered,我已经使用 Django 的时区将默认值设置为正确的格式,并且我已经将默认值设置为正确格式的字符串。每次,当我尝试 makemigrationsmigrate 时,我都会遇到同样的错误,Django 不会将我的更改提交到数据库。当我尝试使用 sqlmigrate 查看 SQL 命令时,我什至遇到了错误。 (需要澄清的是,sqlmigrate 适用于最近的 makemigrations,只是稍有改动,但不适用于早期未提交的 makemigration 尝试,这些尝试有实际错误。)

我能做什么?我怎样才能让 Django 不再顽固并放弃那个旧的、错误的 SQL 命令?有没有办法从 makemigration 中删除任何未提交的 SQL 命令?我现在无法迁移任何内容。

最佳答案

已使用和未使用的迁移卡在 ./app/migrations 中。我在初始迁移后删除了所有迁移文件,然后运行了一个没有格式错误的新 makemigrations

我对此解决方案并不满意。我仍然很想听到更好的答案。

关于python - 让 Django 忘记一个不正确的 'makemigration',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com