c.Databases 管理 Square Cloud 的托管数据库(MongoDB、MySQL、PostgreSQL 和 Redis)。每个方法都以 ctx 作为第一个参数,除 Create 和 StatusAll 外,其次是数据库 ID。要列出你的数据库,请使用 c.Account.Me:它的 Databases 切片包含该密钥可见的所有数据库。
数据库托管需要 Standard、Pro 或 Enterprise 套餐。
下面的每个代码片段都可以在这个程序中单独运行:每次将一个片段粘贴到 main 中,然后运行 goimports(参见运行示例)。
创建数据库
结果是一个
DatabaseCreated,包含 ID、Name、Memory、CPU(float64)、Type、Password、Certificate(*string,API 未发送时为 nil)、ConnectionURL(connection_url)和 Cluster。密码和证书仅由 Create(以及 ResetCredentials)返回。在 ctx 没有截止时间的情况下,该调用至少等待 2 分钟才会超时。
获取数据库
更新数据库
Update(ctx, databaseID, squarecloud.DatabaseUpdate{Name, RAM}) 重命名数据库或调整其大小。零值字段不会被发送;至少设置一个字段(否则返回 400 NO_UPDATE_DATA)。
启动和停止
ctx 没有截止时间的情况下,它们至少等待 2 分钟,被拒绝时返回 409,带有代码和空消息:CONTAINER_ALREADY_STARTED、CONTAINER_ALREADY_STOPPED、CONTAINER_NOT_FOUND、CONTAINER_INSUFFICIENT_DISK_SPACE、CONTAINER_NETWORK_CONFLICT 或 ACTION_FAILED。在 snapshot 恢复进行期间,它们会返回 403 RESTORE_IN_PROGRESS。
状态和指标
Status(ctx, databaseID) 返回格式化的值;StatusRaw(ctx, databaseID) 返回数字。StatusAll(ctx) 为每个数据库返回一份摘要。Metrics(ctx, databaseID) 返回最近 24 小时的数据,每 5 分钟一个数据点,最新的在前。
凭据
Certificate(ctx, databaseID) 以 base64 编码的 PEM 返回 TLS 证书。ResetCredentials(ctx, databaseID, reset) 轮换密码(squarecloud.ResetPassword,返回新密码)或证书(squarecloud.ResetCertificate,返回 "")。数据库必须处于运行状态(否则返回 400 DATABASE_NOT_RUNNING)。
删除数据库
Snapshots
c.Databases.Snapshots 拥有与应用相同的 List、Create 和 Restore。参见 Snapshots。
后续步骤
Workspaces
与团队共享应用。
数据库 API 参考
这些方法背后的 REST 端点。
用 CLI 管理数据库
在终端中完成同样的操作。

