DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mydb', # 你要存储数据的库名,事先要建立之 'USER': 'root', # 数据库用户名 'PASSWORD': '1234', # 密码 'HOST': 'localhost', # 主机 'PORT': '3306', # 数据库使用的端口 } }
Python3不支持MySQLdb,可用pymysql代替。html
1.首先,在Python虚拟环境下安装pymysql:pip install pymysql。python
2.而后,在项目文件夹下的_init_.py添加以下代码便可。mysql
import pymysql pymysql.install_as_MySQLdb()
3.再者,在Terminal中执行数据库迁移命令:sql
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导出数据django
导出以前,咱们先确保settins.py数据库配置选项那里,仍是使用的是SQLite配置,若是已经修改了,请先修改回来:json
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
而后在CMD命令行里输入:windows
python manage.py dumpdata > data.json
这样就将数据导出到Django项目根目录下的data.json文件。app
二、MySQL导入数据
一样,先将Django的数据库配置改成MySQL的:spa
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
操做很简单:
python manage.py dumpdata > backup.json
到PostgreSQL对应的配置中:
python manage.py loaddata backup.json
至此,转载请注明出处。
[ 本站相关连接:>>Django部署 ]