PlanetScale CLI 基础知识

PlanetScale是一个新的托管数据库提供商。它与其他的不同之处在于它用于迁移的分支/合并功能。

它允许开发人员从main数据库模式创建分支,然后单独应用他们的模式更改。

应用它们后,可以无缝地打开、批准和合并部署请求。它承诺快速、不阻塞模式更改并且易于扩展。

他们的免费套餐很慷慨,有很多东西可以开始摆弄。

这将是关于如何使用 CLI 通过工作流完成一些基本任务的快速速成课程。

先决条件

安装了 PlanetScale、pscale、CLI 实用程序:

CLI 安装说明

安装 MySQL Shell:

MySQL 外壳

我将使用 Linux 和 ZSH 作为参考。

登录

登录pscale是一个简单但有趣的过程。首先运行auth login命令:

> pscale auth login

进入全屏模式 退出全屏模式

这将在您的默认浏览器中打开一个选项卡,其中显示一个代码和一个confirm按钮。

回头看看你的 shell,你应该会看到页面上列出的确认代码:

Confirmation Code: XXXXXXX

If something goes wrong, copy and paste this URL into your browser: https://auth.planetscale.com/oauth/device?user_code=XXXXXXX

进入全屏模式 退出全屏模式

验证代码并在页面上接受后,您的终端应显示Successfully logged in.消息。

创建数据库

一开始,您将没有任何数据库。第一步是创建一个(我使用thunks作为数据库名称,但显然使用您想要的任何名称):

> pscale database create thunks

进入全屏模式 退出全屏模式

连接数据库

注意:文档说我们可以只使用pscale shell thunks,但是我收到一个未知选项--defaults-extra-file的错误,所以我们将手动进行。

现在我们有了一个数据库,让我们连接到它并看看我们有什么。在您的终端中创建通往数据库的隧道:

> pscale connect thunks
Secure connection to database thunks and branch main is established!.

Local address to connect your application: 127.0.0.1:3306 (press ctrl-c to quit)

进入全屏模式 退出全屏模式

这将为您提供一个本地地址,默认值:127.0.0.1,和端口,默认值:3306。使用这些来使用mysqlshshell 创建连接。如果它是默认端口,并且当提示输入密码时,您可以省略端口enter而无需输入。由于连接过程被阻塞,您需要在不同的 shell 实例中执行此操作:

> mysqlsh --sql -uroot -h127.0.0.1

进入全屏模式 退出全屏模式

看看我们拥有的数据库:

> show databases;

+--------------------+
| Database           |
+--------------------+
| thunks             |
| information_schema |
| mysql              |
| sys                |
| performance_schema |
+--------------------+
5 rows in set (0.0279 sec)

进入全屏模式 退出全屏模式

我们看到列出了我们的新数据库thunks。它应该是空的:

> show tables;

Empty set (0.0245 sec)

进入全屏模式 退出全屏模式

正如我们所料。

分行

空数据库没有多大用处,所以让我们创建一个新分支来开始迁移。

PlanetScale 使用的分支很像git。因此,我们可以创建一个新分支,执行我们的更改,然后要求维护者合并/部署这些更改。这是 PlanetScale 最有趣的功能之一。它允许单独发生更改并无缝部署。

默认情况下,会创建一个分支为main的数据库。

要创建一个新分支,我们要使用所需的名称运行branch命令。我们将首先添加一个用户表,这样我们就可以让一些人进入我们的数据集:

> pscale branch create thunks add-users-table

进入全屏模式 退出全屏模式

然后检查是否创建成功:

> pscale branch list thunks

  NAME              STATUS   PARENT BRANCH   CREATED AT       UPDATED AT       NOTES  
 ----------------- -------- --------------- ---------------- ---------------- ------- 
  main                       n/a             14 minutes ago   13 minutes ago          
  add-users-table            main            1 minute ago     47 seconds ago

进入全屏模式 退出全屏模式

进行更改

我们之前创建的连接是到数据库的main分支,但我们要进行的更改将在add-users-table上。关闭mysqlsh会话并终止连接进程。

现在,使用我们的新分支重新连接:

> pscale connect thunks add-users-table      
Secure connection to database thunks and branch add-users-table is established!.

Local address to connect your application: 127.0.0.1:3306 (press ctrl-c to quit)

进入全屏模式 退出全屏模式

以与之前相同的方式重新连接 MySQL Shell:

> mysqlsh --sql --uroot -h127.0.0.1

进入全屏模式 退出全屏模式

现在我们可以进行更改:

> CREATE TABLE users (
  login VARCHAR(50),
  name  VARCHAR(50)
);

> describe users;

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| login | varchar(50) | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.0183 sec)

进入全屏模式 退出全屏模式

我们已经对我们的分支进行了更改。让我们验证这些尚未传播到我们的main分支。执行断开/重新连接舞蹈并选择main分支。然后检查数据库中的表:

> show tables;

Empty set (0.0247 sec)

进入全屏模式 退出全屏模式

完美的。

部署请求

现在我们想要的更改在我们自己的分支上,我们需要创建一个部署请求以将它们合并到main分支中。这与 GitHub 或 GitLab 中的 PR/MR 非常相似。

我们通过使用数据库名称和我们想要合并的分支运行deploy-request命令来做到这一点:

> pscale deploy-request create thunks add-users-table

进入全屏模式 退出全屏模式

然后我们可以列出待处理的部署请求:

> pscale deploy-request list thunks
  ID             NUMBER   BRANCH            INTO BRANCH   APPROVED   STATE   DEPLOY STATE   DEPLOYABLE   QUEUED AT      STARTED AT     FINISHED AT   CREATED AT   UPDATED AT   CLOSED AT  
 -------------- -------- ----------------- ------------- ---------- ------- -------------- ------------ -------------- -------------- ------------- ------------ ------------ ----------- 
  zdsty5vxjfin   1        add-users-table   main          No         open    ready          Yes          1 minute ago   1 minute ago

进入全屏模式 退出全屏模式

就像 PR/MR 一样,我们需要获得批准才能将更改部署到main。这使用上面列出的number作为标识符:

> pscale deploy-request review --approve thunks 1
Deploy request thunks/1 is approved.

进入全屏模式 退出全屏模式

部署更改

现在我们的更改已获得批准,我们可以将它们部署到 main 并迁移数据库:

> pscale deploy-request deploy thunks 1
Successfully deployed zdsty5vxjfin from add-users-table to main.

进入全屏模式 退出全屏模式

我们应该在清理之前验证我们的更改是否已经完成。连接到主分支并打开一个 MySQL Shell,然后检查架构:

> describe users;

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| login | varchar(50) | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.0213 sec)

进入全屏模式 退出全屏模式

太好了,我们的更改主要存在。现在进行一些整理任务。

让我们从关闭部署请求开始:

> pscale deploy-request close thunks 1
Deploy request thunks/1 was successfully closed.

进入全屏模式 退出全屏模式

现在我们可以删除分支:

> pscale branch delete thunks add-users-table
? Please type thunks/add-users-table to confirm: thunks/add-users-table
Branch add-users-table was successfully deleted from thunks.

进入全屏模式 退出全屏模式

我们已经迁移了我们的数据库并清理了请求和分支。

结论

PlanetScale 绝对很酷。它带来了非常熟悉的分支、请求和合并到实时数据库的感觉。

它承诺快速、不阻塞模式更改并且易于扩展。

我希望 CLI 文档更好。在顶级命令之后它非常稀疏,所以help消息将是你的朋友。

现在我已经完成了本地开发和 CLI,我很高兴能够尝试使用应用程序和部署。

猜你喜欢

转载自blog.csdn.net/zhishifufei/article/details/127780453
CLI