前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rust 管理clickhouse之Migration

Rust 管理clickhouse之Migration

原创
作者头像
Gilmore0000001
发布2024-04-10 20:59:39
1010
发布2024-04-10 20:59:39

一、Sql文件规范

  1. 按照官方文件命名必须以'V__'开头
  2. 从V1开始编号V2,V3,.....
  3. 文件只增不减

命名必须'V__'
命名必须'V__'

二、Migration代码示例

代码语言:rust
复制
use klickhouse::*;

mod embedded {
    use refinery::embed_migrations;
    // 指定sql文件路径
    embed_migrations!("./src/sql_migrations/");
}

#[tokio::main]
async fn main() -> Result<()> {
    // 建立与 Klickhouse 的连接
    let mut client = Client::connect("172.xx.xxx.xx:9000", ClientOptions{
        default_database: "default".to_string(),
        username: "default".to_string(),
        password: String::new(),
    }).await?;
    
    // 运行嵌入的数据库迁移
    embedded::migrations::runner().run_async(&mut client).await.unwrap(); 

    Ok(())
}

代码语言:context
复制
[dependencies]
chrono = "0.4.34"
futures = "0.3.30"
# klickhouse = "0.11.0"
klickhouse = { version = "0.12.0", features = ["refinery"] }
rand = "0.8.4"
tokio = { version = "1.26.0", default-features = false, features = ["full"] }
uuid = "1.7.0"
refinery = { version = "0.8"}
rusqlite = "0.31.0"

三、元数据表

元数据表:refinery_schema_history
元数据表:refinery_schema_history

特别注意

每个库都会生成一张refinery_schema_history元数据表,所以建议各个业务方以自己project名建库名,示例如下

代码语言:context
复制
Project:bigdata
database:bigdata
元数据表:bigdata.refinery_schema_history
元数据表所在节点:172.xx.xxx.xx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Sql文件规范
  • 二、Migration代码示例
  • 三、元数据表
    • 特别注意
    相关产品与服务
    数据传输服务
    腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档