Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Django数据从sqlite迁移数据到MySQL

Django数据从sqlite迁移数据到MySQL

作者头像
企鹅号小编
发布于 2018-03-02 09:18:17
发布于 2018-03-02 09:18:17
1.9K0
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

昨天快速搭建了一套自己的知识库

感觉一下子有了很多的事情要做,至少得让自己用得舒服些。

没想到有了这个小工具之后,我发现我之前过得真是刀耕火种的信息收集。为什么这么说,因为我们每天都会读大量的文章,如果你决定收藏了,在微信里面就默默的点击“收藏”,然后不知不觉,已经收藏了成百上千篇,微信收藏的文章有个缺点就是我们在手机端很难去管理,通过关键字或者其他标签可以搜索出来,但是屏幕里只能显示出来差不多3-4条信息。如果想根据时间去排序之类的基本上无法实现,我也一直纳闷目前没有见到一个很给力的工具来管理收藏夹。

这仅仅是手机端的,如果是电脑端,那就更多了,我们的浏览器有收藏夹,但是本身没有排序功能,如果要做更多的筛选,基本靠眼里。

而且比较纠结的就是,有时候一打开一下子翻腾出所有的文章,顿时就会让人有些眩晕,而且作为书签,本身没有层级感。

哪怕做了细致的分类,但是一个目录下还是难免会生成大量的链接,完全无法排序。

所以我就退而求其次,把一些链接写道每天的工作记录里面,但这样明显更糟糕,因为这些信息我不去找,压根找不到。所以想想真是悲凉,我遗失了多少重要的信息。

然后我痛下决心,先改善自我生活,比如下面的url管理方式,我可以指定排序的规则。做多个类别的拆分,而且更重要的基于web,如果用Django的admin模板,完全不用写前端页面了。

所以我风风火火用了windows里的配置,为了简化,用了sqlite存储数据,很快就配置了30多条的url信息。

大类别分了这些,所以可以看出来我想做的不是一个简单的url收集,而想让它变得更有意思。不局限于技术方向。

说了这么多,这么做马上就碰到了一个潜在的问题,数据库是sqlite,而我们实际使用肯定是MySQL,从使用和数据安全性上来说,我们更倾向于用MySQL,但是sqlite和MySQL本身不是完全兼容的,怎么同步这些数据。

管理sqlite很简单,数据都存放在一个看起来很普通的文件里面,我们只需要解析这一个文件即可。它更适合于嵌入式,本身是不支持事务的。

怎么把sqlite的数据同步到MySQL就是摆在我面前的一个问题。

我做了快速的尝试,用了如下的方式,仅供参考。

把sqlite的数据文件拷贝到linux里面,因为我正式的服务都是在linux下,同样的应用我使用了MySQL,这个数据文件有个好处就是从windows拷贝到linux,还是能够正常解析的,登录使用命令sqlite3即可。

查看sqlite的数据库情况如下,语法和命令略有差异。

sqlite> .databases

seq name file

--- --------------- -----------------------

0 main /root/test/db.sqlite3

目前存在的表有这些。

sqlite> .tables

auth_group django_content_type

auth_group_permissions django_migrations

auth_permission django_session

auth_user km_child_category

auth_user_groups km_parent_category

auth_user_user_permissions km_url_info

django_admin_log

这么多的表怎么同步呢,其实是做一个选择,我们建立的models.py里面的信息是需要的,也就意味着我们只需要同步其中的3个表即可。

我们使用.dump选项即可轻松导出数据。

sqlite3 db.sqlite3 .dump

得到的SQL类似下面的形式,大部分的语法还是兼容的。

CREATE TABLE "km_parent_category" ("category_pid" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "category_name" varchar(200) NOT NULL, "category_memo" varchar(200) NOT NULL);

INSERT INTO "km_parent_category" VALUES(1,'Python开发技术','test1');

INSERT INTO "km_parent_category" VALUES(2,'MySQL','test2');

INSERT INTO "km_parent_category" VALUES(3,'个人公众号文章','jianrong-notes');

INSERT INTO "km_parent_category" VALUES(4,'人文历史',' ')

如果要导出csv就加-csv选项即可,或者直接生成.sql文件。

如果是sql文件需要去掉脚本里的“”,要不解析会出错。

把SQL部署到MySQL,就行程了一个闭环,我们就可以按照自己的想法来补充完善了。

所以总体来说,迁移还是比较简单的,只要逻辑和结构足够简单,迁移还是比较清晰的。操作大概5分钟就搞定了。

本文来自企鹅号 - 杨建荣的学习笔记媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 杨建荣的学习笔记媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Django基础模板搭建自己的知识库
今天给自己定了个小目标,一定要先做出点东西来,要不别回家了,哈哈。 当然我可不是瞎说,做事得有计划和目标。 我分为了两个阶段,计划在一天内完成,上午是阶段一,下午是阶段二。第一阶段全部要完成,第二阶段
jeanron100
2018/03/22
1.7K0
使用Django基础模板搭建自己的知识库
使用 django-blog-zinnia 搭建个人博客
django-blog-zinnia 虽然小巧,但是具备了个人博客应用的全部基础功能,且具有很高的拓展性,并且开箱即用。以下是官方列出的一些特性: 评论 站点地图(用于搜索引擎优化) 文章归档视图(自动按时间归档博文,包括年、月、星期、日各个时间维度) RSS 或者 Atom Feed 分类和标签云 全文搜索 Markdown 语法标记 等等其他一些博客应用具备的全部基本功能。 你可以参照它的官方文档 ( django-blog-zinnia documentation ) 的 insta
用户1177713
2018/02/24
1.5K0
使用 django-blog-zinnia 搭建个人博客
Python接口测试数据管理
在接口测试过程中,由于有些接口类型并不是安全的,比如DELETE类型,上一次请求之后下一次再请求结果就不一样了。甚至有时接口之间的数据还会相互干扰, 导致接口断言失败时不能断定到底是接口程序引起的错误,还是测试数据变化引起的错误,那么该如何有效解决这个问题呢?
清风穆云
2021/08/09
6510
Django 系列篇(三):配置篇(下)
Django 中的模板引擎在创建项目的时候可以选择,包含:Django Templats 和 Jinja2
AirPython
2020/04/15
7720
Django 系列篇(三):配置篇(下)
sqlite3常用命令以及django如
http://www.runoob.com/sqlite/sqlite-commands.html
py3study
2020/01/09
9860
12. Django 2.1.7 模型 - 使用mysql数据库连接访问
上一篇Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据讲述了如何使用sqlite3作为数据库,执行模型查询数据,并返回渲染页面。
Devops海洋的渔夫
2022/01/17
1.4K0
12. Django 2.1.7 模型 - 使用mysql数据库连接访问
【云+社区年度正文】Django从入门到精通No.3---与数据库交互
之前我们学到了模型的概念,提到了关联关系以及一些字段,现在我们来对这些知识进行扩充并且应用,那么就需要与数据库进行交互才能实现了。
Python进阶者
2020/11/30
1.1K0
【云+社区年度正文】Django从入门到精通No.3---与数据库交互
Django+Vue开发生鲜电商平台之8.商品详情页功能实现
Github和Gitee代码同步更新: https://github.com/PythonWebProject/Django_Fresh_Ecommerce; https://gitee.com/Python_Web_Project/Django_Fresh_Ecommerce。
cutercorley
2020/07/30
1.3K0
Django+Vue开发生鲜电商平台之8.商品详情页功能实现
从零开始串联Python前后端技术
运维开发流程概述 是我们参与到其中的一个入口,我们需要了解运维开发的一些环节,还有运维开发的一些技术基础。我们通过一个实例来做演示,基本的需求就是从数据库中查取数据,通过前端页面展现出来。 (一)业务需求 显示人员信息和部门 使用Django框架来流转数据 数据存储在MySQL中 在前端页面可以查看数据 快速迭代开发 (二)环境构建 1)创建项目 django-admin startproject emp_test 2)启动Python内置web服务 其中1
jeanron100
2018/04/17
9180
从零开始串联Python前后端技术
让 Django 完成翻译:迁移数据库
我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。 迁移数据库 为了让 Django 完成翻译,创建好这些数据库表,我们再一次请出我的工程管理助手 manage.py。激活虚拟环境,切换到 manage.py 文件所在的目录下,分别运行 python manage.py makemigrations 和 python manage.py migrate 命令: C:\WINDOWS\system
追梦人物
2018/04/17
1.4K0
七日Python之路--第八天
说实话七天学完Python,确实有些难度。O(∩_∩)O哈哈~ 七天只是约数。
lpe234
2020/07/28
4750
ubuntu中的django安装配置与操作
1 安装django,在安装前确保python已经安装,ubuntu中默认有安装的。我们只需要安装django即可,解压django压缩文件,进入解压后的文件夹,运行,python setup.py install即可安装django到python中。 2 创建django项目,首先在任意位置创建文件夹,这里是在python用户下创建work文件夹,接着进入work运行一下命令即可创建django工程。 root@ubuntu118:/home/python/work# django-admin.py st
闵开慧
2018/03/30
1.1K0
Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入
Github和Gitee代码同步更新: https://github.com/corleytd/Django_Fresh_Ecommerce; https://gitee.com/Python_Full_Stack/Django_Fresh_Ecommerce。
cutercorley
2020/07/23
2K0
Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入
5 分钟快速掌握在 Python 使用 SQLite 数据库
去年,州的先生曾经发表过一篇《小巧、稳定、快速!我为什么喜欢用 SQLite》的文章,里面对 SQLite 数据库极尽推崇。
州的先生
2021/08/12
5.6K0
Python标准库14 数据库 (sqlite3)
Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比如HTML5和移动端。Python标准库中的sqlite3提供该数据库的接口。 我将创建一个简单的关系型数据库,为一个书店存储书的分类和价格。数据库中包含两个表:category用于记录分类,book用于记录某个书的信息。一本书归属于某一个分类,因此book有一个外键(foreign key),指向cat
Vamei
2018/01/18
1.6K0
Python标准库14 数据库 (sqlite3)
「Go开源」goose:深入学习数据库版本管理工具
goose是一个用go语言编写的数据库版本管理的命令行工具。其github地址如下:https://github.com/pressly/goose
Go学堂
2023/10/25
9270
「Go开源」goose:深入学习数据库版本管理工具
如何使用node操作sqlite
SQLite是一种轻量级的嵌入式关系型数据库管理系统,它以库的形式存在,可以嵌入到应用程序中。它使用简单的、基于文件的数据库格式,不需要独立的服务器进程,非常适合在资源有限的环境中使用。
用户6297767
2023/11/21
1.2K0
Django的配置(二)
打开主项目下的settings.py文件 首先找到TEMPLATES,该列表存放的是一些静态文件相关的内容。
zx钟
2019/07/19
4980
DJango配置mysql数据库以及数据库迁移
1.首先,在Python虚拟环境下安装pymysql:pip install pymysql。
小小咸鱼YwY
2020/06/19
6.6K0
django操作非ORM创建的表
django--ORM连接已存在的表 问题: django的ORM怎么连接已存在的表,然后进行增删查改操作? 工作中会遇见很多二次开发的时候,表都是已经创建好的,用django的ORM进行二次开发,
py3study
2018/08/03
1.8K0
相关推荐
使用Django基础模板搭建自己的知识库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档