1、介绍
官网:https://spawn.cc/
日常学习或开发时,遇到需要使用到数据库,如果在公司(数据库肯定不能随便用来测试,即便是测试的库,拿来做自己学习测试用那也不特别合适),就更别说在家了。正常来说我们肯定是要在本地安装自己需要的数据库。那么有没有可以不在本地安装数据库就可以呢?那么接下来的Spawn就可以完美的解决这个问题。
Spawn使提供远程的数据库副本,供我们学习开发或测试使用。Spawn的数据库副本是托管在云上,因此不需要在本地安装数据库服务器了。
Spawn需要用到GitHub账号授权使用。没有GitHub的可以先去注册。
Spawn目前支持如下的数据库引擎:
- MSSQL
- PostgreSQL
- MySQL
- MongoDB
- Redis
Spawn数据库副本的存储结构与Docker类似,也有image和container,使用时先创建image,再创建container。
2、安装Spawn
安装路径:https://docs.spawn.cc/getting-started/installation
安装过程很简单,我这里选择的window安装,下载spawnctl.ext文件到本地,然后将下载的文件放到自己定义的文件目录,官网建议的是放在C:\Program Files\Spawn,这个可以根据自己的喜好调整。然后将对应的目录配置到path环境变量。
检查是否安装成功:
spawnctl version --输出: Client Version: 0.32.26204 Latest Client Version: 0.35 Server Version: 0.0.4.0 A new version of the spawnctl CLI is available! Visit https://www.spawn.cc/docs/getting-started#download-and-install-spawn to install.
使用Spawn之前,必须先使用GitHub创建账户,成功后使用如下命令进行授权。
spawnctl auth
执行命令后会在打开浏览器,然后点提交后,控制台输出结果。
Please wait, authenticating... Authenticated successfully. A new version of the spawnctl CLI is available! Visit https://www.spawn.cc/docs/getting-started#download-and-install-spawn to install.
到这里安装Spawn就已经完成了。
3、使用Spawn
首次使用Spawn时,需要执行spawnctl onboard命令。
3.1、数据镜像
操作数据镜像命令如下:
| 命令 | 说明 |
|---|---|
| create data-image | 创建镜像 |
| get data-image | 获取镜像 |
| delete data-image | 删除镜像 |
| update data-image | 更新镜像 |
3.1.1 创建数据镜像
创建数据镜像之前,先创建配置development.yaml文件,文件内容如下:
sourceType: empty name: th-test engine: mysql tag: v1.0 version: 8.0.25 lifetiime: 24h
配置文件内容解释:
- sourceType:
Spawn支持empty、scripts、backup - name:数据镜像名称
- engine:数据库引擎
- tag:数据镜像标签
- version:数据库版本
- lifetiime:数据镜像存活时间 不配置默认永久
进入到建好的配置文件目录下,使用命令:
spawnctl create data-image -f .\development.yaml 这里也可以使用绝对路径 spawnctl create data-image -f D:\test\development.yaml 结果: Data image 'th-test' (14410) created!
3.1.2 获取数据镜像
spawnctl get data-images 或 spawnctl get data-image
其中spawnctl get data-image后面可以跟镜像名称或镜像ID,如果不跟效果与spawnctl get data-images一致
3.1.3 更新数据镜像
--添加数据镜像团队 spawnctl update data-image
--team
--team
--删除数据镜像团队 spawnctl update data-image
--team
--remove --添加数据镜像标签 spawnctl update data-image
--tag
--tag
--删除数据镜像标签 spawnctl update data-image
--tag
--remove --添加数据镜像有效时间 spawnctl update data-image
--lifetime 2h --修改数据镜像名称 spawnctl update data-image
--name
3.1.4 删除数据镜像
spawnctl delete data-image
命令后面可以跟数据镜像名称或ID,可以跟一个或多个,多个空格隔开,例如:
spawnctl delete data-image dev test spawnctl delete data-image 1001 1002
注意:如果数据镜像里面存在数据容器,则删除失败,必须要先将里面的容器删除。
3.2、数据容器
操作数据容器命令如下:
| 命令 | 说明 |
|---|---|
| create data-container | 创建数据容器 |
| get data-container | 获取数据容器 |
| update data-container | 更新数据容器 |
| delete data-container | 删除数据容器 |
| save data-container | 保存数据容器 |
| reset data-container | 重置数据容器 |
| load data-container | 加载数据容器 |
| logs data-container | 查看数据容器日志 |
| proxy data-container | 代理数据容器 |
| graduate data-container | 通过数据容器创建数据镜像 |
3.2.1 创建数据容器
spawnctl create data-container --image
--lifetime
--image 基于那个数据镜像创建数据容器
--lifetime 数据容器的存活时间
--name 数据容器的名称
使用如下:
spawnctl create data-container --image th-test --lifetime 1h --name crm-test 创建结果: Data container 'crm-test' () created! -> Server=instances.spawn.cc;Port=31956;User Id=root;Database=mysql;Password=doVLwdfDmW4tKiA4 Use 'spawnctl get data-container crm-test -o yaml' to see these connection details again.
从结果可以看出数据库的用户名、密码、服务器、端口信息。
3.2.2 获取数据容器
获取数据容器命令与获取数据镜像命令差不多,也是有两个。
spawnctl get data-containers 或 spawnctl get data-container
spawnctl get data-container后面不跟容器名称或ID,列出所有容器,与spawnctl get data-containers效果一样。命令后面跟-o wide 或 json,可以查看数据容器更详细信息,json方式结果以JSON格式展现。
spawnctl get data-containers -o json 结果: [{"id":,"imageId":12975,"name":"flyway-container","revision":"rev.0","engine":"PostgreSQL","engineVersion":"11.0","statusMessage":"Running data container 'flyway-container' ()","connectionString":"Host=instances.spawn.cc;Port=31443;Username=spawn_admin_uBsj;Database=foobardb;Password=GFOSBDDbU03rIxtc","host":"instances.spawn.cc","port":31443,"user":"spawn_admin_uBsj","password":"GFOSBDDbU03rIxtc","createdAt":,"expiresAt":0,"status":"Completed"},{"id":,"imageId":14283,"name":"test-container","revision":"rev.0","engine":"PostgreSQL","engineVersion":"11.0","statusMessage":"Running data container 'test-container' ()","connectionString":"Host=instances.spawn.cc;Port=31362;Username=spawn_admin_JraG;Database=postgres;Password=va1O34QqlQAXPydy","host":"instances.spawn.cc","port":31362,"user":"spawn_admin_JraG","password":"va1O34QqlQAXPydy","createdAt":,"expiresAt":0,"status":"Completed"},{"id":,"imageId":14411,"name":"oms","revision":"rev.0","engine":"MySQL","engineVersion":"8.0.25","statusMessage":"Running data container 'oms' ()","connectionString":"Server=instances.spawn.cc;Port=30467;User Id=root;Database=mysql;Password=20iDhEEUgVi1Blax","host":"instances.spawn.cc","port":30467,"user":"root","password":"20iDhEEUgVi1Blax","createdAt":,"expiresAt":0,"status":"Completed"},{"id":,"imageId":14411,"name":"crm-test","revision":"rev.0","engine":"MySQL","engineVersion":"8.0.25","statusMessage":"Running data container 'crm-test' ()","connectionString":"Server=instances.spawn.cc;Port=31956;User Id=root;Database=mysql;Password=doVLwdfDmW4tKiA4","host":"instances.spawn.cc","port":31956,"user":"root","password":"doVLwdfDmW4tKiA4","createdAt":,"expiresAt":,"status":"Completed"}]
3.2.3 更新数据容器
--更新数据容器存活时间 spawnctl update data-container
--lifetime
--更新数据容器名称 spawnctl update data-container
--name
3.2.4 删除数据容器
spawnctl delete data-container
与删除数据镜像一样,后面可以跟多个容器名称或ID,使用空格隔开。
3.2.4 保存数据容器
spawnctl save data-container
将指定的数据容器保存升级新的版本,如下:
spawnctl save data-container crm-test 结果: Successfully saved data container 'crm-test' New revision is 'rev.1'
从结果可以看出,创建出来的数据容器版本默认为rev.0,保存后的版本升级为rev.1
3.2.5 重置数据容器
spawnctl reset data-container
重置命令后面也可以跟多个数据容器名称或ID,也是以空格隔开。常用的命令就介绍到这里,其他命令就不一一列出来了,使用方式都差不多。
至于怎么去连接数据库使用,这里就不做介绍了。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204243.html原文链接:https://javaforall.net
