在 Django 中将 SQLite3 数据库迁移到 MySQL

Posted

技术标签:

【中文标题】在 Django 中将 SQLite3 数据库迁移到 MySQL【英文标题】:Migrate SQLite3 database to MySQL in Django 【发布时间】:2018-10-11 12:37:09 【问题描述】:

我正在使用 Django 1.11 和带有 python3 的 Django-CMS 开发一个网站。最初我使用默认数据库sqlite3,但是,现在我希望它迁移到mysql。我在网上找到了几种解决方案,例如

Solution 1

Solution 2

但是,两者都不起作用。对于第一个解决方案,我收到以下错误:

AttributeError: 'Page' object has no attribute '_node_cache'

第二个解决方案出现了这个错误:

Could not load contenttypes.ContentType(pk=1): (1062, "Duplicate entry 'cms-placeholder' for key 'django_content_type_app_label_model_76bd3d3b_uniq'"

在这两个示例中,我都使用了一个空数据库并首先迁移。

有什么帮助吗?

【问题讨论】:

你的mysql数据库连接正确吗? @TheDumbfounds 是的 【参考方案1】:

Django 的内容类型变得棘手。尝试在运行迁移后但在加载固定装置之前从数据库中删除 django_content_type 的内容:

python manage.py dbshell
DELETE FROM django_content_type;

如果加载成功,请再次运行迁移以填写 django_content_type 中任何缺失的条目。祝你好运!

【讨论】:

以上是关于在 Django 中将 SQLite3 数据库迁移到 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

将字段更改为多对多时的 Django 数据迁移

Django 迁移:sqlite3 开发数据库、Amazon Elastic Beanstalk 和 Amazon RDS postgresql 实时数据库

django数据迁移

django 10.5 sqlite3迁移到mysql

在 django 1.8 中将数据从原始用户模型迁移到自定义用户模型

搭建 python 3.5+pycharm 2017.1.3+django 1.12.0 首次 将sqlite3 迁移到mysql