当前位置: 首页 > news >正文

【教程】Sqlite迁移到mysql(django)

1、先将sqlite db文件导出sql

sqlite3 db.sqlite3 .dump>output.sql

db.sqlite3 是 sqlite 数据库文件

output.sql是导出sql文件的名称

2、sql文件转换、处理

sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' output.sql | sed 's/datetime/timestamp/g' | sed 's/INTEGER/int/g' > new.sql

sql处理完后可能依然 导入到mysql 会报错,需要额外 根据报错进行处理。

3、导入到mysql

进入mysql,选择数据,然后执行

source /mnt/d/new.sql

4、错误处置

如果导入成功,此步骤跳过即可,

如果失败则根据错误再次处理sql文件

  • 比如建表语句错误,那么可能需要手动更正(或建表后导入)
  • 比如一些没用的sql语句也可以删除sed '/INSERT INTO auth_/d'
  • 有些报错的比如,PRAGMA foreign_keys=OFF; 可以考虑删除
  • 针对django sqlite 和mysql转换,我这里是直接先在settings里配置mysql,然后使用django的迁移命令在mysql里先创建空表
    • python manage.py makemigrations
    • python manage.py migrate
    • 然后第2步的时候 sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' output.sql | sed 's/datetime/timestamp/g' | sed 's/INTEGER/int/g' | sed '/CREATE TABLE /d' | sed '/INSERT INTO django_/d'  | sed '/INSERT INTO auth_/d' |   sed '/INSERT INTO Login_ldapuserdb/d'  > new.sql
    • 这里特别将“CREATE TABLE” 建表语句删除,将insert auth_ 和 django_ 开头 数据插入也删除,因为django迁移已经执行过了。

反复多次,报错 <->修改,直到导入时没有错误。

http://www.lryc.cn/news/239100.html

相关文章:

  • 【漏洞复现】DPTech VPN存在任意文件读取漏洞
  • CentOS 8搭建WordPress
  • 服务器安全防护导致使用多款行业顶尖软件搭配使用,还是单独一款解决呢?
  • 【Spring篇】Spring注解式开发
  • 14.(vue3.x+vite)组件间通信方式之pinia
  • DolphinDB 浙商银行 | 第二期现场培训圆满结束
  • DBS note4:Buffer Management
  • Linux 中 .tar 和 tar.gz 的区别
  • 区域人员超限AI算法的介绍及TSINGSEE视频智能分析技术的行业应用
  • asp.net mvc点餐系统餐厅管理系统
  • SpringBoot 使用多SqlSessionFactory下的事务问题
  • 浏览器内置NoSQL数据库IndexedDB
  • 网络参考模型与标准协议(二)-TCP/IP对等模型详细介绍
  • 万宾科技智能井盖传感器,预防城市道路安全
  • GCC/Make/CMake 工具链
  • GO抽象工厂模式
  • Linux 磁盘/分区/修复 命令
  • php一句话木马免杀
  • 深度学习人体跌倒检测 -yolo 机器视觉 opencv python 计算机竞赛
  • 轻松整理文件夹,将视频文件全部归类到另一个文件夹!
  • 存储服务器特征是什么
  • Conditional GAN
  • OOM问题排查+Jvm优化
  • 链表:C++实现
  • 使用JMX监控ZooKeeper和Kafka
  • 蓝桥等考C++组别七级008
  • sam和mobilesam导出预处理的onnx
  • 开源与闭源:大模型发展的双重走向
  • c# 逆变 / 协变
  • electron使用better-sqlite3打包失败(electron打包有进程没有界面)