Django 配置MySQL数据库 mysql
Django 配置MySQL数据库
在settings.py中配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'mydb', # 你要存储数据的库名,事先要创建之
'USER': 'root', # 数据库用户名
'PASSWORD': '1234', # 密码
'HOST': 'localhost', # 主机
'PORT': '3306', # 数据库使用的端口
}
}
数据库结构迁移
Python3不支持MySQLdb,可用pymysql代替。
1.首先,在Python虚拟环境下安装pymysql:pip install pymysql。
2.然后,在项目文件夹下的_init_.py添加如下代码即可。
import pymysql
pymysql.install_as_MySQLdb()
3.再者,在Terminal中执行数据库迁移命令:
python manage.py makemigrations
python manage.py migrate 温馨提示:若执行python manage.py makemigrations时提示"No changes detected",则试试先执行python manage.py makemigrations --empty appname解决问题。
数据迁移
把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',
}
}
然后在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存在数据导致的。
加载时区表
另外,有可能所安装的MySQL没有加载时区表。这个可能会导致filter对日期的查询有问题。Django官方文档也指出这个问题。MySQL官网也有对应处理方法:加载时区表
Linux/Mac解决方法都很简单。windows系统要先下载一个sql文件:timezone_2018e_posix_sql.zip
下载完成之后,解压得到一个sql文件,再执行cmd命令导入该文件即可:
mysql -u root -p mysql < timezone_posix.sql
MySQL数据到PostgreSQL
操作很简单:
python manage.py dumpdata > backup.json
到PostgreSQL对应的配置中:
python manage.py loaddata backup.json
Django 配置MySQL数据库 mysql的更多相关文章
- 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)
MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...
- 第二百八十三节,MySQL数据库-MySQL存储过程
MySQL数据库-MySQL存储过程 MySQL存储过程,也就是有点像MySQL函数,但是他与MySQL函数是有区别的,后面会讲到函数,所以注意区分 注意:函数与存储过程的区别 存储过程是:CREAT ...
- 第二百八十五节,MySQL数据库-MySQL函数
MySQL数据库-MySQL函数 1.MySQL内置函数 SELECT执行函数,后面跟要执行的函数 CHAR_LENGTH(str)函数:返回字符串的字符长度 -- CHAR_LENGTH(str)函 ...
- 第二百八十四节,MySQL数据库-MySQL触发器
MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...
- 第二百八十二节,MySQL数据库-MySQL视图
MySQL数据库-MySQL视图 1.视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 2.也 ...
- MySQL数据库”mysql SQL Error:1146,SQLState:42S02 “解决方法
项目在开发的时候在Mac平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决. ...
- django 配置 多数据库
django多数据库 阅读spider platform时发现前端项目中使用了多数据库,那么django实现多数据库需要哪些配置呢,又如何使用呢? 定义及路由机制 定义 在settings里面的DAT ...
- Django配置MariaDB数据库
Django中配置MariaDB数据库.配置文件如下: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': ...
- MySQL数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
MySQL数据库安装 一.Windows 环境下安装 A.下载 MySQL Select Operating System: Microsoft Windows 快捷下载:mysql-8.0.22-w ...
随机推荐
- [Turn]C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
C#代码 /// <summary> /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID /// </summary> ...
- Ubuntu 16.04下apt安装ssh及卸载(含FileZilla 使用过程)
前言:文件发布测试过程中需要使用Windows和Ubuntu实现文件共享. 以下内容转载自:http://blog.csdn.net/jiang13479/article/details/535014 ...
- java 模拟简单搜索
Java 模拟简单搜索 实体类 package org.dennisit.entity; /** * * * @version : 1.0 * * @author : 苏若年 <a href=& ...
- C语言内存布局简记待补充
C语言存储类型总结内存操作函数总结 用于自己学习和记录 1. void *memset(void *s, int c, size_t n); #include <string.h> 功能: ...
- Luogu P2101 命运石之门的选择(分治+搜索)
P2101 命运石之门的选择 题意 题目描述 在某一条不知名世界线的冈伦今天突然接到了一条\(dmail\),上面说世界线将会发生巨大变动,未来的他无论如何都无法扭转这种变动回到原来的世界线.而世界线 ...
- 获取计算机以及本机信息API
获取计算机名: BOOL GetComputerName( LPTSTR lpBuffer, // computer name LPDWORD lpnSize // size of name buff ...
- mysql报错:You must reset your password using ALTER USER statement before executing this statement.
新安装mysql后,登录后,执行任何命令都会报错: You must reset your password using ALTER USER statement before executing t ...
- pixhawk 常见问题 持续更新
红灯蓝灯闪,初始化中,请稍等 黄灯双闪,错误,系统拒绝解锁 黄灯闪,遥控器关闭 黄灯快速闪且滴滴响,电池保护激活 蓝灯... 未见过.... 绿灯闪: 已加锁,GPS锁定已获得. 准备解锁. 从加锁状 ...
- Chrome 地址栏如何设置显示 http/https 和 www
首先在 chrome 地址栏输入以下地址 chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains 然后使用 Ctr ...
- py3.x和py2.x的区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...