28个版本 (12个破坏性更新)

0.20.6 2024年8月13日
0.20.5 2024年5月13日
0.20.4 2024年3月28日
0.13.3 2023年12月27日

4#tembo

Download history 134/week @ 2024-05-11 10/week @ 2024-05-18 1/week @ 2024-05-25 152/week @ 2024-08-10

每月下载量152次

MITGPL-3.0-only

155KB
3.5K SLoC

Tembo CLI

Tembo CLI 允许用户在本地体验 Tembo,以及管理并部署到 Tembo 云。它抽象化了配置、管理和运行 Postgres 的复杂性。

入门指南

安装CLI

使用homebrew

brew tap tembo-io/tembo
brew install tembo-cli

使用cargo

cargo install tembo-cli

命令

通过探索我们全面的 命令参考,发现各种命令及其相应选项。

开发Tembo CLI

本地测试

克隆此存储库并运行

cargoinstall --path .

如果安装路径在您的shell路径中,您可以运行 tembo help 和其他 tembo 命令。

您可以使用此命令在开发期间使用任何 tembo 命令的本地代码

alias tembo='cargo run --'

从API生成Rust客户端

OpenAPI Generator 工具用于生成 Rust 客户端。

如果尚未安装,请按照以下步骤 此处 安装 OpenAPI Generator。

数据平面API客户端

在您的终端中转到 tembodataclient 目录。

首先删除目录内容,然后运行以下命令以重新生成 API 的 rust 客户端代码。

openapi-generator generate -i https://api.data-1.use1.tembo.io/api-docs/openapi.json  -g rust -o . --additional-properties=packageName=tembodataclient
  • 转到 tembodataclient/src/lib.rs & 在顶部添加以下行以禁用生成代码的 clippy
#![allow(clippy::all)]

控制平面API客户端

在您的终端中转到 temboclient 目录。

首先删除目录内容,然后运行以下命令以重新生成 API 的 rust 客户端代码。

openapi-generator generate -i https://api.tembo.io/api-docs/openapi.json  -g rust -o . --additional-properties=packageName=temboclient
  • 转到 temboclient/src/lib.rs & 在顶部添加以下行以禁用生成代码的 clippy
#![allow(clippy::all)]
  • 创建 temboclient/src/models/impls.rs 文件 & 向其中添加以下代码
use std::str::FromStr;

use super::{Cpu, Environment, Memory, StackType, Storage};

impl FromStr for Cpu {
    type Err = ();

    fn from_str(input: &str) -> core::result::Result<Cpu, Self::Err> {
        match input {
            "0.25" => Ok(Cpu::Variant0Period25),
            "0.5" => Ok(Cpu::Variant0Period5),
            "1" => Ok(Cpu::Variant1),
            "2" => Ok(Cpu::Variant2),
            "4" => Ok(Cpu::Variant4),
            "8" => Ok(Cpu::Variant8),
            "16" => Ok(Cpu::Variant16),
            "32" => Ok(Cpu::Variant32),
            _ => Err(()),
        }
    }
}

impl FromStr for Memory {
    type Err = ();

    fn from_str(input: &str) -> core::result::Result<Memory, Self::Err> {
        match input {
            "1Gi" => Ok(Memory::Variant1Gi),
            "2Gi" => Ok(Memory::Variant2Gi),
            "4Gi" => Ok(Memory::Variant4Gi),
            "8Gi" => Ok(Memory::Variant8Gi),
            "16Gi" => Ok(Memory::Variant16Gi),
            "32Gi" => Ok(Memory::Variant32Gi),
            _ => Err(()),
        }
    }
}

impl FromStr for Environment {
    type Err = ();

    fn from_str(input: &str) -> core::result::Result<Environment, Self::Err> {
        match input {
            "dev" => Ok(Environment::Dev),
            "test" => Ok(Environment::Test),
            "prod" => Ok(Environment::Prod),
            _ => Err(()),
        }
    }
}

impl FromStr for Storage {
    type Err = ();

    fn from_str(input: &str) -> core::result::Result<Storage, Self::Err> {
        match input {
            "10Gi" => Ok(Storage::Variant10Gi),
            "50Gi" => Ok(Storage::Variant50Gi),
            "100Gi" => Ok(Storage::Variant100Gi),
            "200Gi" => Ok(Storage::Variant200Gi),
            "300Gi" => Ok(Storage::Variant300Gi),
            "400Gi" => Ok(Storage::Variant400Gi),
            "500Gi" => Ok(Self::Variant500Gi),
            _ => Err(()),
        }
    }
}

impl FromStr for StackType {
    type Err = ();

    fn from_str(input: &str) -> core::result::Result<StackType, Self::Err> {
        match input {
            "Standard" => Ok(StackType::Standard),
            "MessageQueue" => Ok(StackType::MessageQueue),
            "MachineLearning" => Ok(StackType::MachineLearning),
            "OLAP" => Ok(StackType::Olap),
            "VectorDB" => Ok(StackType::VectorDb),
            "OLTP" => Ok(StackType::Oltp),
            "DataWarehouse" => Ok(StackType::DataWarehouse),
            "Geospatial" => Ok(StackType::Geospatial),
            "Timeseries" => Ok(StackType::Timeseries),
            _ => Err(()),
        }
    }
}
  • temboclient/src/models/mod.rs 的末尾添加以下行
pub mod impls;

贡献

在您开始工作之前,最好先检查是否存在现有的计划。加入我们的 Slack 社区 并在那里提问。

Semver

Tembo CLI 遵循 语义版本化 2.0

依赖关系

~145MB
~2.5M SLoC