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
每月下载量152次
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