如何使用现有模型和迁移恢复 Django 项目的转储数据库备份?
Posted
技术标签:
【中文标题】如何使用现有模型和迁移恢复 Django 项目的转储数据库备份?【英文标题】:How to restore a dump database backup for a Django project with existing models and migrations? 【发布时间】:2021-10-30 13:53:45 【问题描述】:从现有转储设置 mysql 数据库非常简单
# open prompt cd into the directory where the dump is located
# login to mysql
create database mydb
use mydb
source mydb.sql
一切都完成了! 但问题来自 Django。 Django 对尚未从模型和迁移系统创建的现有方案和数据存在问题。而在 Django 中,一切都必须来自模型和迁移。
我完全知道我有这个选项
python manage.py inspectdb > models.py
但这仅适用于使用现有数据库创建空白的新 Django 项目时。
如果我想将现有的 Django 项目运行到另一台机器上并且 Django 项目使用数据库怎么办?该项目已经有一些设置了 manage=false 的现有模型,我不能简单地检查它。如果我在 Django 外部恢复数据库,Django ORM 将不再识别它。
那么对于具有现有模型和迁移的项目,从数据库备份恢复数据库的正确方法是什么?
【问题讨论】:
如果我没看错,问题是:如何转储现有数据库? 【参考方案1】:如果您要恢复的数据库以前由 django 管理,那么只需通过三步过程恢复数据库,您应该不会遇到任何问题。 Django 的迁移历史以表的形式存储在它管理的任何数据库中。只要该表完成,您的新迁移就应该可以正常工作。
【讨论】:
以上是关于如何使用现有模型和迁移恢复 Django 项目的转储数据库备份?的主要内容,如果未能解决你的问题,请参考以下文章
如何将现有 CharField 与数据迁移到 Django 中的 IntegerField
将现有 auth.User 数据迁移到新的 Django 1.5 自定义用户模型?
如何使用 Python 迁移将 Heroku Django 应用程序的新模型表添加到远程 Heroku Postgres?