首页 > 解决方案 > Django zappa 错误:InconsistentMigrationHistory: Migration admin.0001_initial 在其依赖accounts.0001_initial 之前应用

问题描述

所以,我在 AWS Lambda 上使用 Zappa。我刚刚在我的项目中添加了一个自定义用户模型,并尝试迁移到 AWS 上的 RDS,Zappa 给了我以下错误:

InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

现在,我知道如果我在本地服务器上遇到此错误,我会这样做:

python manage.py migrate admin zero
python manage.py migrate auth zero
python manage.py migrate contenttypes zero
python manage.py migrate sessions zero

然后我会运行迁移以销毁他们的表并再次重新创建它们(请参阅此有用的 SO 帖子

但是,如果我跑

zappa manage dev migrate 

在那之后,我得到

InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database

我应该如何使用 Zappa 在 AWS RDS 上做同样的事情,还是应该做其他事情?

标签: djangoaws-lambdaamazon-rdszappapython-zappa

解决方案


我使用zappa-django-utils 命令简单地破坏了表:

zappa manage prod drop_pg_db
zappa manage prod create_pg_db

棘手的部分是创建一个新的管理员用户。由于我用帐户模型替换了身份验证模型,因此我不得不使用原始 python 命令:

zappa invoke --raw dev "from django.accounts.models import User; User.objects.create_superuser('admin@yourdomain.com', 'ohsosecretepass')"

通常,应该在任何迁移之前实现自定义用户模型,因为很多事情都与用户模型相关。因此,尽管我试图避免它,但丢弃所有桌子是不可避免的。


推荐阅读