所以,我在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上做同样的事情,还是应该做其他事情?
我使用zappa-django-utils命令简单地销毁了表:
zappa manage prod drop_pg_db
zappa manage prod create_pg_db
棘手的部分是创建一个新的管理员用户。由于我用accounts模型替换了auth模型,我不得不使用原始python命令:
zappa invoke --raw dev "from django.accounts.models import User; User.objects.create_superuser('admin@yourdomain.com', 'ohsosecretepass')"
通常,自定义用户模型应该在任何迁移之前实现,因为许多事情都与用户模型有关。所以,尽管我尽量避免,但丢掉所有的桌子是不可避免的