使用dj-stripe+DRF开发订阅应用时的迁移错误求助
解决dj-stripe与Django迁移的系列问题
1. 修复自定义subscription_subscription表不存在的问题
- 确认你的
subscription应用已添加到settings.py的INSTALLED_APPS中 - 生成并应用自定义应用的迁移:
python manage.py makemigrations subscription python manage.py migrate subscription
2. 解决dj-stripe迁移冲突与依赖缺失问题
步骤1:清理dj-stripe的迁移记录与残留表
- 登录PostgreSQL数据库,执行SQL删除dj-stripe的迁移记录:
DELETE FROM django_migrations WHERE app = 'djstripe'; - 确认数据库中所有以
djstripe_开头的表已被完全删除(若有残留,手动删除)
步骤2:强制同步dj-stripe迁移状态
执行以下命令,让Django跳过初始迁移的依赖检查,并标记初始迁移为已应用:
python manage.py migrate djstripe --fake-initial
步骤3:完成全局迁移
执行全局迁移命令,确保所有应用的迁移都正常应用:
python manage.py migrate
3. 验证修复效果
- 运行
python manage.py showmigrations djstripe,确认所有dj-stripe的迁移项都标记为[X] - 重新测试订阅成功回调接口,确认数据库表访问正常
注意事项
- 确保dj-stripe版本与你的Django版本兼容,避免版本不匹配引发的迁移异常
- 不要手动删除第三方库的数据库表,如需重置迁移状态,使用Django的
migrate --fake系列命令处理
内容的提问来源于stack exchange,提问作者Omnia Osman
相关产品推荐
相关产品推荐

