【问题标题】:Is there a way to add models to postgres without deleting all the tables in postgres?有没有办法在不删除 postgres 中的所有表的情况下向 postgres 添加模型?
【发布时间】:2020-02-26 23:51:13
【问题描述】:
姜戈
我正在尝试将 Django 模型中的新表/模型添加到已有表的现有 postgres 数据库中,但唯一的解决方案是再次从头开始
解决方案:
删除迁移,删除 postgres 数据库中的所有表。 python manage.py makemigrations, python manage.py migrate
错误:
在尝试进行迁移并使用新模型迁移后浏览 drf api 或 postgres 数据库时,该表不存在。
【问题讨论】:
标签:
django
postgresql
django-models
django-rest-framework
【解决方案1】:
添加额外的表(作为创建新模型的结果)不需要您从头开始或删除任何现有数据。提供无法应用的迁移示例会很有帮助。
【解决方案2】:
看起来您的迁移文件和数据库中的迁移(djang_migrations 表 - 我希望它是正确的表名)不兼容。
如果您确定 db 中的表和模型相同(现有迁移文件反映了您的数据库表)并且您希望创建 SomeModel(对于此示例)模型,您可以尝试到:
- 清除您的 django_migrations 表 - 记得备份此表
- manage.py migrate --fake(它只会在 django_migrations 表中创建一些行)
- manage.py makemigrations(它应该为 SomeModel 模型创建迁移文件)
- manage.py migrate(它将创建新表)
希望它会有所帮助:)