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

Django将默认的SQLite更换为MySQL

1、注释默认的SQLite3配置:

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

2、添加MySQL配置(配置你自己的mysql库前提是你已经有能够供自己使用的MySQL库了)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #固定配置
        'HOST': '127.0.0.1',#mysql地址
        'PORT': '3306',#端口号
        'NAME': 'guest',#库名(组名)
        'USER': 'root',#用户
        'PASSWORD': '123456',#密码
        'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", },
    }
}


迁移数据库
为了让 Django 完成翻译,使用我们在modele.py已经创建好的这些数据库表,我们请出我的工程管理助手 manage.py。激活虚拟环境,切换到 manage.py 文件所在的目录下,分别运行 python manage.py makemigrationspython manage.py migrate命令:


PS D:\xuexi\python\\django2\blogproject> python manage.py makemigrations
Migrations for 'blog':
  blog\migrations\0001_initial.py:
    - Create model Category
    - Create model Post
    - Create model Tag
    - Add field tags to post
PS D:\xuexi\python\web接口开发\django2\blogproject> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying blog.0001_initial... OK
  Applying sessions.0001_initial... OK

仅供参考你的数量可能没有这么多

  • 当我们执行了 python manage.py makemigrations后,Django 在 blog 应用的 migrations\ 目录下生成了一个 0001_initial.py文件,这个文件是 Django 用来记录我们对模型做了哪些修改的文件。目前来说,我们在 models.py 文件里创建了 3 个模型类,Django 把这些变化记录在了 0001_initial.py里。
  • 不过此时还只是告诉了 Django 我们做了哪些改变,为了让 Django 真正地为我们创建数据库表,接下来又执行了 python manage.py migrate命令。Django 通过检测应用中 migrations\ 目录下的文件,得知我们对数据库做了哪些操作,然后它把这些操作翻译成数据库操作语言,从而把这些操作作用于真正的数据库。

如果你使用的是mysql会生成0001_auto_20180507_2145.py
如果你需要在mysqlSQLite3之间切换你需要重新执行python manage.py makemigrationspython manage.py migrate命令,而且你原来库中的数据不会转移(执行完上面两个命令只会在新的数据库中创建modele.py中的表)。

转载于:https://www.cnblogs.com/weibgg/p/10786976.html

相关文章:

  • Django的contenttypes
  • 离散傅里叶级数DFS
  • NiftyNet开源平台的使用 -- 配置文件
  • 构造代块 的作用
  • [SCOI2010]传送带
  • 2018.10.17多校
  • [USACO16FEB]负载平衡Load Balancing_Silver(NlogNlogN解法)
  • 在Ubuntu上学习OpenStack之五:控制节点上安装Nova
  • LintCode: coins in a line I
  • 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager
  • python web框架 MVC MTV
  • centos7--网易yum源
  • 数据库连接池和软件设计分层模式
  • 英语
  • 蓝牙的Baseband说明
  • SegmentFault for Android 3.0 发布
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CSS 提示工具(Tooltip)
  • js中的正则表达式入门
  • linux安装openssl、swoole等扩展的具体步骤
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Sass Day-01
  • Selenium实战教程系列(二)---元素定位
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vuex 笔记整理
  • 记录:CentOS7.2配置LNMP环境记录
  • 微信小程序实战练习(仿五洲到家微信版)
  • 怎样选择前端框架
  • 《天龙八部3D》Unity技术方案揭秘
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)STL算法之搜索
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (solr系列:一)使用tomcat部署solr服务
  • (二)Linux——Linux常用指令
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (五)网络优化与超参数选择--九五小庞
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)ABI是什么
  • (转)IOS中获取各种文件的目录路径的方法
  • .gitignore
  • .htaccess配置重写url引擎
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core 中的路径问题
  • .Net Remoting常用部署结构
  • .NET 事件模型教程(二)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET学习教程二——.net基础定义+VS常用设置
  • @GlobalLock注解作用与原理解析
  • @开发者,一文搞懂什么是 C# 计时器!