在 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的主要内容,如果未能解决你的问题,请参考以下文章