首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据从旧数据库传输到django中的新修改数据库?

如何将数据从旧数据库传输到django中的新修改数据库?
EN

Stack Overflow用户
提问于 2021-06-15 06:01:24
回答 1查看 1.1K关注 0票数 1

我有以前的django项目和django项目。我从旧django的数据库中创建了转储文件。我还修改了表并创建了新的表。

现在,我想将转储文件加载到我的新django应用程序中。当我首先迁移,然后恢复数据,或者首先恢复然后迁移时,我会遇到错误。当我首先进行迁移时,它说表已经存在了。

当我首先恢复时,它说django.db.utils.ProgrammingError: relation "django_content_type" already exists我使用migrate --fake error goes,但是新表不是在数据库中创建的。

我花了3-4天,但没能成功。

如果可以的话请帮帮我。

PS:我的数据库是postgresql

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 07:00:48

这不是直截了当的,需要一些人工干预,这取决于你将来想做什么。

  • 如果数据库中已经存在的表具有稳定的设计并且不会被更改,或者可以使用SQL语句手动进行更改,然后将managed = False设置为模型的元,这将使Django跳过对这些模型的

进行迁移

  • 如果您希望在所有模型的新项目中保持迁移的能力,那么这将使

更加复杂。

代码语言:javascript
运行
复制
1. Delete all your migrations
2. You need to make your models equivalent to your database, you can set `managed=False` for  new models like `Users`
3. Run `python manage.py makemigrations`, this will create the structure of the initial database.
4. Fake running the migrations `python manage.py migrate --fake`
5. Dump the records of django\_migrations table
6. Create a new empty migration (with --empty) and add the SQL statements of the `django_migrations` table to it using `migrations.RunSQL()`
7. now fake again so you skip that new migration.
8. Now you are ready to use migrations as usual.

安装新数据库时,只需运行python manage.py migrate即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67980803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档