【问题标题】:Django - migrate command not using latest migrations fileDjango - 迁移命令不使用最新的迁移文件
【发布时间】:2022-11-25 14:05:04
【问题描述】:

我创建了 5 个迁移文件。但是当我运行./manage.py migrate 它总是尝试应用迁移文件“3”。尽管最新的是文件 5。

我该如何解决这个问题?

我努力了:

./manage.py makemigrations app_name
./manage.py migrate app_name
./manage.py migrate --run-syncdb

另外,我检查了 dbshel​​l,并且已经为模型创建了一个表,它是迁移文件 5 的一部分。

【问题讨论】:

  • 迁移不会运行,除非模型上发生了一些变化(改变了模式)。因为 Django 足够聪明,仅在您第一次运行迁移时创建一个表,并且不会像我已经提到的那样再次运行 - 如果模型上的某些内容已被更改。或者你可以这样做 -> stackoverflow.com/a/69922730/1737811

标签: python django django-migrations


【解决方案1】:

很简单,因为您在执行 makemigrations 时没有使用 migration file 值。迁移文件值为0005.您必须在执行 makemigrations 时指定该值。

使用这三个命令进行迁移:

python manage.py makemigrations appname

python manage.py sqlmigrate appname 0005 #specified that migration file 5 value here

python manage.py migrate

现在迁移将使用其值应用于该迁移文件 50005

【讨论】:

    猜你喜欢
    • 2012-08-13
    • 1970-01-01
    • 2020-10-13
    • 2017-10-17
    • 1970-01-01
    • 2015-07-10
    • 2017-02-23
    • 2021-07-09
    • 2015-09-30
    相关资源
    最近更新 更多