doccano中的sqlite数据迁移到mysql

  1. 导出数据

    • 在进行任何迁移操作之前,先从现有的 SQLite 数据库中导出数据。

      python manage.py dumpdata > data.json

  2. 更新数据库配置

    • 修改 base.py 文件中的数据库配置,将 SQLite 配置更改为 MySQL 配置。根据你提供的代码片段,确保配置如下:

      DATABASES = {
      "default": {
      "ENGINE": "django.db.backends.mysql",
      "NAME": env("DB_NAME", "django"), # MySQL 数据库名称
      "USER": env("DB_USER", "root"), # MySQL 用户名
      "PASSWORD": env("DB_PASSWORD", "network"), # MySQL 密码
      "HOST": env("DB_HOST", "localhost"), # MySQL 服务器地址
      "PORT": env("DB_PORT", "3306"), # MySQL 端口,通常为 3306
      # "OPTIONS": {
      # "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
      # "charset": "utf8mb4", # 确保支持多语言字符
      # },
      }
      }

修改 cli.py 文件中的数据库配置:

复制代码
os.environ.setdefault("DATABASE_URL", "mysql://root:network@localhost:3306/django")
  1. 删除旧的迁移文件(可选):

    • 如果迁移文件中包含了特定于 SQLite 的内容,可以选择删除旧的迁移文件并重新生成。

      find . -path "/migrations/.py" -not -name "init.py" -delete
      find . -path "/migrations/.pyc" -delete

  2. 创建新的迁移文件

    • 运行 makemigrations 命令生成新的迁移文件。

      python manage.py makemigrations

  3. 应用迁移

    • 运行 migrate 命令将迁移应用到 MySQL 数据库。

      python manage.py migrate

  4. 导入数据到 MySQL 数据库

    • 使用 loaddata 命令将之前导出的数据导入到 MySQL 数据库。

      python manage.py loaddata data.json

相关推荐
我是一颗柠檬1 小时前
【MySQL全面教学】MySQL面试高频考点汇总Day15(2026年)
数据库·后端·mysql·面试
橙淮2 小时前
并发编程(六)
java·jvm
身如柳絮随风扬2 小时前
数据库读写分离:从原理到实战,构建高并发系统
数据库·mysql
EntyIU3 小时前
JVM内存与GC笔记
java·jvm·笔记
雪宫街道3 小时前
synchronized 锁的范围:对象锁、类锁与代码块锁
java·jvm·后端·面试
我是一颗柠檬6 小时前
【MySQL全面教学】MySQL性能优化实战Day13(2026年)
数据库·后端·sql·mysql·性能优化·database
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题 第84题】【Mysql篇】第14题:为什么用 InnoDB 存储引擎的表建议用整型的自增主键?
java·开发语言·数据库·mysql·面试
小江的记录本6 小时前
【JVM虚拟机】JVM调优:常用JVM参数、调优核心指标、OOM排查、GC日志分析、Arthas工具使用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
牧羊狼的狼7 小时前
MySQL 四大索引失效写法 + 业务替代最优解决方案
mysql·索引失效