云原生集成开发环境——TitanIDE
通过网页在任何地方更安全、更高效地编码2023-03-06
1303
故事起源
最近,我在使用 TitanIDE 开发云原生应用的时候,需要一个客户端操作数据库,我们一般都会在自己的电脑安装 NaviCat、Workbench、DBeaver 等数据库客户端工具。这些工具都挺好用的。不过呢,NaviCat 想说爱你不容易,虽然MySQL Workbench 是免费的,但是仅支持 MySQL。最后找到了 DBeaver,发现 DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,还开源、免费。但问题是,TitanIDE 是运行在云端,通过浏览器来访问的,而以上工具皆运行在本地桌面操作系统内部,一个在云端,一个在本地,TitanIDE 和 DBeaver 是怎么坠入爱河的呢?且听我娓娓道来......
主角:
TitanIDE:云原生集成开发环境
DBeaver:数据库客户端
配角:
RuoYi:一款优秀的开源项目,用到了 MySQL 数据库
客串:
NaviCat:一款强大的商业版数据库客户端
MySQL Workbench:一款免费的 MySQL 数据库客户端
一见钟情
根据心理学家的发现,爱上一个人,仅需要8.2秒,而喜欢一个人,只需要0.4秒。因为眨眼睛的时间是0.2秒,而大脑做决定的时间也就0.2秒而已,也就是一眨眼、一秒内的时间就足以产生最初始的心动。基于此,TitanIDE 和 DBeaver 可以说是一见钟情,接下来我们进一步了解一下这两位主角。
TitanIDE简介
TitanIDE 是一款云原生集成开发环境, 公元 2019 年出生于一个云原生家庭,自幼受云计算的熏陶,注重安全、高效、体验,最少只需一台虚拟机,十分钟即可安装好,即可开启您的全云端开发之旅!
TitanIDE支持多核心,无需本地安装,打开浏览器就可以选择您熟悉的开发工具,无论是Jetbrains全家桶、Android Studio、VS Code、OpenSumi、Eclipse等IDE,还是Postman、DBeaver等常用工具,总有一款适合您。
DBeaver简介
DBeaver 是集三万宠爱于一身的开源桌面数据库客户端应用客户端,对于这么热的 DBeaver,功能强大,几乎支持市面上所有的数据库产品,包括:MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL Server、Sybase、MS Access、Teradata、Firebird、Apache Hive、Phoenix、Presto等, 本故事的主角是 DBeaver CE,即社区版,企业版还支持 NoSQL如MongoDB,Redis等。
坠入爱河
优美的 DBeaver 让 TitanIDE 一见钟情,双双坠入爱河。在此之前,TitanIDE 也在数据库客户端选择方面经历了一些曲折,其中就包括命令行客户端和市面上一些其他的同类产品。
创建数据库连接
以 MySQL 为例,TitanIDE 在工作区已经集成了mysql命令行客户端,输入以下命令即可。
# mysql 部署在 demo 开发空间,服务名称为 mysql,和应用在同一个开发空间的情况下,-h 参数值为 mysql,如果需要在其他开发空间连接 demo 开发空间的 mysql,则 -h 参数为 mysql.demo
mysql -h mysql -u root -p
Enter password:
执行 MySQL 连接后的效果如下:
不过,对应相当一大部分程序员来说,还是难以驾驭命令行工具,因此,考虑图形界面客户端就成了 TitanIDE 不二的选择,起初准备集成 NaviCat,只是,NaviCat 看似高贵,其实在磨合的过程中是历尽艰辛的,最新的版本支持 Linux,符合 TitanIDE 的审美观,但是想说爱你真不容易,在容器化过程中,NaviCat 相处不是很融洽,个中缘由就不在这里赘述,我们还是把更多时间留给我们的主角 -- DBeaver。
在 TitanIDE 启动 DBeaver 非常简单,选择 DBeaver 模板创建一个项目即可。(在 PC机用过本地版本的朋友一定知道,您在正式使用 DBeaver 的时候需要安装 JDK,然后在连接数据库的时候需要等待安装驱动,在 TitanIDE 将这些步骤都做成模板后,已经简化很多了,和其他 IDE、工具的使用方式一样开箱即用。)
打开 DBeaver 之后,我们来创建一个数据库连接,DBeaver 支持众多的数据库,这里我们以 MySQL 为例新建一个链接。
在创建新的数据库连接时,以下标红色部分需要注意,服务器地址填写 mysql是因为 MySQL部署在 DBeaver 同一个开发空间 demo,在右下角的服务列表有提示服务名称和端口号,点击服务名称即可复制并粘贴到服务器地址栏,认证填写连接数据库的用户名和密码,在 Advanced 区域,有个本地客户端,需要指定本地客户端所在的目录,为什么需要配置这么一个客户端呢,因为在导入数据的时候需要用到。在上面有提到,TitanIDE 在 /usr/bin 项目默认安装了 mysql的命令行客户端,如果是其他的本地客户端,仍然可以通过右侧栏的文件上传工具上传到 DBeaver 的工作区,然后在本地客户端下拉浏览找到您上传的客户端。
这一步的设置相当重要,您需要告诉 DBeaver 去哪里找本地客户端的可执行文件,以 MySQL 为例,在恢复数据时需要用到 /usr/bin/mysql, 这也是社区软件免费之美,不重复造轮子。对应部分用户来说,可能会多了一步配置。纯粹从产品层面来说,还是有改进的空间。当然这点瑕疵不丝毫影响 TitanIDE 对 DBeaver 的爱,这世界上有谁是十全十美的呢?
TitanIDE 在 /usr/bin 文件夹下面内置了 mysql 客户端,因此选择 /usr/bin 后点击 【open】按钮。
如果您用的不是 mysql,或者找不到相关工具,您可以通过文件上传工具上传。
随后再点击 【确定】按钮,新建数据库环节到此就结束啦。
现在来查看下数据库连接信息,具体显示如下:
新建数据库
创建好数据库连接之后就可以进行日常的数据库操作啦,故事讲到这里,第一配角 RuoYi正式登场,以RuoYi项目开发为例,来创建一个数据库 ry, 点击右键->新建数据库。
在输入框输入数据库名称 ry后点击【确定】按钮:
导入数据库
当创建数据库之后,就可以将数据导入数据库了,数据的导入有三种方式。
方式一:如果您的SQL脚本已经在代码仓库,那么您可以通过 Git 直接克隆到 DBeaver 的工作区,这里我导入的是 RuoYi数据库,因此克隆RuoYi项目,在随后恢复数据库的时候选择工作区的SQL脚本文件
方式二:如果您的SQL脚本是在本地电脑,可以直接在右侧栏文件上传工具直接上传文件到工作区,在随后恢复数据库的时候选择工作区的SQL脚本文件:
方式三:如果您是在 TitanIDE 上已经克隆了代码到同一个开发空间的其它项目,则可以通过一个 space.share 的文件来共享SQL脚本,在随后恢复数据库的时候选择 space.share 的SQL脚本文件:
在完成以上操作之后,我们就可以在 DBeaver 正式导入(恢复)数据到数据库啦,点击数据库 ry,按右键菜单 -> 工具 -> 恢复数据库:
还记得上面我们讲过将数据库SQL脚本导入工作区吗?现在是时候使用这个SQL脚本了,通过输入文件右侧图标打开文件选择框,选择好您要导入的数据SQL脚本,如 /home/ide/workspace/space.share/sql/quartz.sql然后点击【开始】按钮:
DBeaver 本着负责的态度,会再次提醒如下:
您即将从 /home/ide/workspace/space.share/sql/quartz.sql恢复数据库ry。这可能会导致数据库损坏。确定要继续吗?我们是新创建的数据库,当然安全,请点击 【是】按钮。
比翼双飞
在导入数据之后,现在是时候来体验一下互相欣赏一下 DBeaver 这位集三万宠爱于一身的主角之美了,我们接着往下看。
修改主题
作为一个程序员,长期工作在电脑前面,暗黑主题已经成了广大程序员的最爱了,据说暗黑主题还没那么容易招惹 Bug,您相信吗?
主题的设置方法很直观,在菜单选择:窗口 -> 首选项:
打开首选项之后选择:用户界面->外观->主题,再下拉选择您喜欢的主题:
新建数据库表
1、创建表
在 DBeaver 新建数据库表很直观:使用鼠标右键在数据库->表打开菜单->新建表:
2、创建列(字段)
创建好表之后,在数据库列区域点击右键弹窗菜单->新建列。
或者点击新建列图标。
然后填充数据库字段属性,按需填写好后点击【确定】按钮。
特别注意:在创建表的字段设置自增时报错「incorrect table definition there can be only one auto column and it must be defined as a key」,该怎么解决呢?
经查验,在创建表时,如果设置字段自增,则会报以上错误。原因是 DBeaver 没有自动帮您设置这种特殊的约束,需要您在创建表后,在「约束」里手动设置字段成为主键。
如下选择 id 字段为主键,点击【确定】按钮。
然后返回「列」在设置id为「自增」,点击【保存】->【执行】按钮完成修改。
查看表属性、数据、ER图
双击左侧树状菜单中需要查看的表,如「sys_user」,右边会显示表的属性、数据和ER图。
查看表属性
查看表数据
ER图
修改列、字段属性
双击「列」,进入表的字段属性编辑状态,直接在表格中修改字段属性后,点击「保存」即可生效。
向表中插入数据
DBeaver 插入数据非常直观,直接选择「添加行」然后就可以像 Excel 一样操作数据库插入数据,然后保存即可。
查询表数据
数据库查询是程序员DBA最常用的功能了,在这里可以进行数据库脚本的开发。
以下是查询结果:
修改表中数据
进入数据页面,直接像操作 Excel 一样修改完毕再点击「保存」。
删除表中一行数据
首先选择要删除的行,然后点击「删除行」,最后「保存」完成删除操作。
删除数据表
右键点击需要删除的表,然后选择「删除」,确认后,表会被从数据库中删除。请谨慎使用!
查看数据库 ER 图
接下来秀一秀 DBeaver 最性感部分 -- 数据库 ER 图。
导出数据库
在完成以上常规操作之后,我们来看下如何导出一个数据库所有的表,操作非常简单,和导入数据差不多,选择要导出的数据库,点击右键弹窗菜单:工具->转存数据库:
选择「转存数据库」
选择要导出的对象
填写导出配置
「开始」导出
终成眷属
我们来回顾一下 TitanIDE ❤️ DBeaver 的爱情故事,TitanIDE 为了寻找一可靠的、可以相处到地久天长的数据库客户端简直是操碎了心,最后有幸遇见 DBeaver,从云端的一见钟情、坠入爱河、比翼双飞,直到 DBeaver 入住 TitanIDE,两位有情人终成眷属。
最后,我们再给我们故事的第一主角来个特写:
注:DBeaver 有云端版本 -- CloudBeaver,不过,它还未成熟,暂时不考虑,作为简单数据库查询还是可以的。