不必安装,快速使用各种数据库,牛X!
点击关注公众号,Java干货及时送达
今天发现一个对于我平时学习、测试写 demo 代码非常有用的小玩意,给大家分享下。
我最近在测试一个数据库的 sql 是否使用索引的问题,需要造大量的数据,但是我只是用来测试一下,并不想在自己的电脑上安装一个数据库软件(就算安装了没用后我就卸载了,这算软件洁癖么!)
所以我就在想我可以不在本地安装数据库吗? 当然 H2 内存数据库可以免安装,但是应用一重启数据就没了,也没有事务,功能还是不够强大。于是,我就去网上搜了下发现了 Spawn。
Spawn
可以轻松创建用于开发和测试的一次性数据库副本,数据库副本被托管在云中,所以不需要我在本地安装数据库服务器了。而且测试完如果我还想保存我的数据以便下次使用,或者下班回去自己再搞搞?
这点也支持的,Spawn
还可以根据我当前的数据库状态,将所有配置和数据打包创建一个新的数据库镜像,下次直接根据这个镜像启动数据库容器就好了。而且使用过程全部使用简单的命令行就可以完成。
看到这里,了解 Docker
的同学会发现其实和 Docker
的玩法类似,只不过对于创建数据库来说,它更简单好用。
对比也很明显,Docker 的缺点:命令复杂。
在经过短暂的了解之后我发现这个符合我的需求,果断尝试了一波,发现确实不错,我们可以随心所欲创建多个数据库,都是通过命令行来操作的,还可以搭配 DevOps 使自动化变得更简单。
那如果你在公司做一些测试或者自己学习中的项目需要使用数据库又不想自己安装的话,也可以使用 Spawn 来创建一个云端的数据库副本(公司数据库肯定不能随便用来测试,即便是测试的库,拿来做自己学习测试用那也不是特别合适)。
Spawn 目前支持的数据库引擎:
MSSQL PostgreSQL MySQL MariaDB MongoDB Redis
基本上覆盖了我们平时经常用的,那不废话了,我们开始吧!
1. 安装 Spawn
Spawn
数据库副本的存储结构与 Docker 类似,也有 image 和 container ,使用时先创建 image,再创建 container。
Spawn
需要用到GitHub
账号授权使用。没有GitHub
的可以先去注册;官网地址:https://app.spawn.cc/login
WIndows 下载地址:https://run.spawn.cc/spawnctl.exe
我这里演示 Mac 下的安装命令:
下载并运行安装脚本;
$ export PATH=$PATH:$HOME/.spawnctl/bin
添加 spawnctl
到环境变量;
export PATH=$PATH:$HOME/.spawnctl/bin
spawnctl
安装认证登录,会自动拉起浏览器进行 github 账户登录授权;
spawnctl auth
浏览器授权成功后,会自动响应到命令行中:
到这里安装就结束了,那如果创建数据库副本呢?接着往下看。
最新面试题整理好了,点击Java面试库小程序在线刷题。
2. 创建数据库副本
Spawn
支持的数据库有很多,上面也都列举了,这里我以 MySQL 为例,其它的数据库大家安装需要可以参考官方文档自己多玩下。
Spawn
创建的数据库副本是以容器的方式运行在云端的,而容器运行的前提是要有一个数据库的镜像,这个镜像包含了所有的数据和配置,然后就可以根据这个镜像启动一个数据库容器副本,我们就可以来访问这个容器正常使用了。同一个镜像是可以启动多个数据库容器的。
为了便于开始,Spawn
基于常见示例数据库创建了一些公共数据映像。接下来我创建一个 Sakila Mysql 样例数据库。Sakila 可以作为数据库设计的参考,也可作为实验数据。它包括16张表格,7个视图,3个 Stored Procedures,3个 Functions,6个 Triggers。
安装命令:
spawnctl create data-container --image mysql-sakila:v5.7 --name spawn-tutorial --lifetime 1h
--image
基于那个数据镜像创建数据容器;--lifetime
数据容器的存活时间;--name
数据容器的名称;
Data container 'spawn-tutorial' (97479) created!
-> Server=instances.spawn.cc;Port=30635;User Id=root;Database=mysql;Password=
创建完成的结果可以看出数据库的用户名、密码、服务器、端口信息。
到此,大功告成,使用你平时链接数据库的工具正常链接即可!复制上面 服务器名称 和 端口、用户名和密码,我这里用命令行工具演示下:
mysql -h instances.spawn.cc -uroot -p -P31500
这是一个 MySQL 数据库的完整版本,我们可以正常使用,验证各种特性。
同时也可以查询我们刚才创建的数据库容器:
spawnctl get data-containers
结果如下:
3. 总结
那今天给大家分享了一款可以免安装使用各种完整数据库产品的工具,随用随走,特殊方便。虽然今天我只是带大家使用 Spawn 创建了数据库实例来使用,这只是最基本的功能。
它还支持数据库状态的回滚,可以创建、配置自定义的数据库镜像,在 CI/CD中自动生成数据库,让自动化更简单。感兴趣的建议大家去看看官方文档,内容也不多非常适合锻炼自己的官方文档阅读能力哦😯~
这里给一下文档地址:
https://docs.spawn.cc/
关注Java技术栈看更多干货