Django迁移不起作用.必须删除数据库,并重新开始每一次



我有一个工作良好的django项目。然而,每次我的模型发生变化时(当我向模型添加属性时),迁移就会停止工作。通常会出现某种错误,或者迁移无法执行。对我来说,使迁移工作的唯一方法是删除数据库并重新开始。这是一个非常奇怪的行为,不能在现场/生产环境中工作。我最近不得不删除生产环境中的db,它非常混乱。

有办法解决这个问题吗?这难道不奇怪吗?当Django声称迁移会让一切变得简单时,它却让迁移变得更加困难。我做错了什么吗?我不知道从哪里开始。

在运行python management .py migrate之前,是否运行python management .py makemigration ?

首先,当迁移出现问题时,您不需要删除数据库。

当你在模型中编辑一些东西时,你需要使用下面的命令手动迁移:

python manage.py makemigrations appname
python manage.py sqlmigrate appname 0001 #This value will come after makemigrations, it can be either 0001 or 0002 or 0003 and so on.
python manage.py migrate

我假设您已经按顺序运行了以下命令:

  1. python manage.py makemigrations
  2. python manage.py migrate

如果您收到与迁移相关的错误,请仔细阅读错误。

这种类型的与迁移相关的错误主要是由于迁移文件中的不一致而发生的。这不是一个合适的解决方案,您每次都会丢失数据库。首先,在编写模型时应该更加关注。最后,您可以修改您的迁移文件以消除不一致,或者与您的迁移交叉检查django_migrations表。祝你好运:)

最新更新