首页 > 数据库 >Django如何把SQLite数据库转换为Mysql数据库

Django如何把SQLite数据库转换为Mysql数据库

时间:2023-05-13 09:04:04浏览次数:44  
标签:SQLite 数据库 py Django MySQL Mysql

大部分新手刚学Django开发的时候默认用的都是SQLite数据库,上线部署的时候,大多用的却是Mysql。那么我们应该如何把数据库从SQLite迁移转换成Mysql呢?

之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据。如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去。

1、SQLite导出数据

导出之前,我们先确保settins.py数据库配置选项那里,还是使用的是SQLite配置,如果已经修改了,请先修改回来:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

然后在CMD命令行里输入:

python manage.py dumpdata > data.json

这样就将数据导出到Django项目根目录下的data.json文件。

2、MySQL导入数据
同样,先将Django的数据库配置改为MySQL的:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '你的数据库名',
        'USER': '你的MySQL用户名',
        'PASSWORD': '你的密码',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

先找到数据表对应的 migrations 文件夹,保留 __pycache__ 和 __init__.py 文件,其他的都删掉。

然后先执行下面这行命令:

python manage.py makemigrations

再执行下面这行命令:

python manage.py migrate

 

然后在CMD命令行里输入:

python manage.py loaddata data.json

再运行项目,发现成功运行

注意:

确保Mysql用户表里为空的,如果之前有迁移过数据到Mysql,有可能会出错。注意出错的时候所报的错误信息。如果提示有重复主键,那需要先删掉数据。这些数据是在给MySQL数据库应用迁移文件的时候产生的,一般是content_type相关的表。

进入到MySQL,执行如下的SQL语句:

use 你的数据库名;
delete from auth_permission;
delete from django_content_type;

删除数据之后,再执行一次导入命令即可。基本上,导入不了数据都是MySQL存在数据导致的。

 

标签:SQLite,数据库,py,Django,MySQL,Mysql
From: https://www.cnblogs.com/HGNET/p/17396713.html

相关文章

  • CQRS读写分离MySQL数据库如何部署至Linux
    FearlessGuo首先有一台可以使用的Linux服务器,可以自行购买,当然也可以白嫖。有一款可以连接Linux的软件,我用的是putty在Linux上下载docker镜像,类似应用商店。安装过程参阅下方链接Linux安装Docker完整教程_docker安装_风随心飞飞的博客-CSDN博客下载mysql镜像,查看版本本次......
  • 第三章.数据库系统(重点)
    该章内容在上午题和下午题中都有出现重点:规范化理论(必考)、关系代数(必考)第一节.数据库概述1.数据库模式2.ER模型3.关系代数与元组演算4.规范化理论5.并发控制6.数据库完整性约束7.分布式数据库8.数据库与数据挖掘第二节.数据库系统——三级模式-两级映射......
  • Django笔记四十之运行Django环境的python脚本
    本文首发于公众号:Hunter后端原文链接:Django笔记四十之运行Django环境的python脚本这一篇笔记介绍如何在Django中运行脚本。假设说我们要实现一个功能,需要获取blog.models.Blog这张表里的总数且使用print()输出。如果代码逻辑很短,且是一次性执行的操作,我们可以在系统的......
  • 记录一次金仓V8R3数据库坏块处理过程、PostgreSQL数据库适用
    因数广政务云华为业务存储固件升级,导致数据库产生坏块,业务SQL查询报错如下:ERROR:missingchunknumber0fortoastvalue38166585inSYS_TOAST_30170CONTEXT:PL/SQLfunctioninline_code_blockline12atFORoverEXECUTEstatement解决办法:1、先查询出SYS_TOAST......
  • sql server 跨数据库插入数据
    公司项目改造,需要将以前的数据库表记录导入到新的数据库表中,结构不是完全相同。在跨库的过程中,学到了不少东西。原来SQLServer还有链接服务器的功能呢。/*不同服务器数据库之间的数据操作*/--创建链接服务器execsp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器......
  • SQL Server数据实时同步至Oracle数据库中
    1、使用SSMS中的链接服务器链接Oracle请参考链接  SQLServer客户端链接服务器到Oracle数据库全攻略_sqlserver连接oracle数据库_简单的你我1314的博客-CSDN博客2、使用触发器(insertupdatedelete)获取更改的数据然后同步至Oracle中(使用openquery查询)//openquery语句ORCL......
  • 数据库调优
    首先在调优之前,必然是因为某一个sql查询慢,影响性能,才会存在调优。数据库调优之前,测试sql真正的响应时间,需要排除数据库的缓存干扰,因为缓存的存在,并不能真正的显示查询出sql的响应时间 使用执行计划Explain,分析sql在数据库的执行情况type字段:这条执行计划中的连接类型,all全表......
  • 【大揭秘】SQL与NoSQL数据库的优缺点全面对比!一篇文章帮助你轻松解决选择困难症!
    从分析师、工程师到IT决策者,许多人都熟悉关系数据库管理系统(rDBMS)和用于与它们交互的SQL(SQL)。虽然这些术语指的是一个几十年的范式,仍然是一个广泛使用的标准,今天的纯粹的多样性和数据库系统的深度可以令人眼花缭乱。更重要的是,不断增长的各种数据(尤其是非结构化数据数据)......
  • django系列-git远程仓库配置
    一、本地配置0.为什么要设置本地配置有一些不希望别人同步代码时看到的配置,可以放在local_settings.py中,通过配置gitignore实现1.创建gitee仓库 网站手动创建2.gitignore配置在项目中创建一个.gitignore的文件,在里面写上文件名或文件夹,可以git忽略一些文件,不要进行版本控......
  • JDBC 数据库连接池之Driud
    1数据库连接池简介数据库连接池是个容器,负责分配、管理数据库连接(Connection)它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏好处资源重用提升系统响应速度避免......