博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 配置MySQL数据库 mysql
阅读量:5997 次
发布时间:2019-06-20

本文共 1925 字,大约阅读时间需要 6 分钟。

 

在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 pymysqlpymysql.install_as_MySQLdb()

3.再者,在Terminal中执行数据库迁移命令:

python manage.py makemigrationspython 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文件:

下载完成之后,解压得到一个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

 

转载于:https://www.cnblogs.com/16795079a/p/10939560.html

你可能感兴趣的文章
MapGuide Enterprise 2010 Update 2 has been released
查看>>
客人发帖:添加一个日历到您的Xamarin.Forms应用程序与Telerik日历
查看>>
Gzip压缩
查看>>
struts2配置i18n设置,点击链接生成国际化文本
查看>>
web-yestem(伊莱博)-票据管理(ver-1.0)-数据库设计
查看>>
[异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
查看>>
深入理解MySQL 5.7 GTID系列(二):GTID相关内部数据结构
查看>>
matlab命令
查看>>
ICE专题:学习ICE 3.0
查看>>
raptor
查看>>
.NET Reflector 改嫁!
查看>>
apacheserver下载、安装、配置
查看>>
枣庄:明确六个任务确定六大行动 为智慧城市建设提供支持
查看>>
三步打造云退出战略
查看>>
南通市城管局推动“数字化城管”向“智慧城管”升级
查看>>
湖北移动物联网为三峡库区保驾护航
查看>>
《深入理解OSGi:Equinox原理、应用与最佳实践》一3.7 本章小结
查看>>
从小数据分析到大数据平台,这十几年来大数据开源技术是如何演进的?
查看>>
《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第3章 查 询 转 换
查看>>
中兴通讯扬帆国际化难掩主场失意:内外销市场冰火两重天
查看>>