risingwave_meta_model_migration/
m20251223_064450_table_change_log.rs

1use sea_orm_migration::prelude::*;
2
3use crate::utils::ColumnDefExt;
4
5#[derive(DeriveMigrationName)]
6pub struct Migration;
7
8#[async_trait::async_trait]
9impl MigrationTrait for Migration {
10    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
11        manager
12            .create_table(
13                Table::create()
14                    .table(HummockTableChangeLog::Table)
15                    .if_not_exists()
16                    .col(
17                        ColumnDef::new(HummockTableChangeLog::TableId)
18                            .integer()
19                            .not_null(),
20                    )
21                    .col(
22                        ColumnDef::new(HummockTableChangeLog::CheckpointEpoch)
23                            .big_integer()
24                            .not_null(),
25                    )
26                    .col(
27                        ColumnDef::new(HummockTableChangeLog::NonCheckpointEpochs)
28                            .json_binary()
29                            .not_null(),
30                    )
31                    .col(
32                        ColumnDef::new(HummockTableChangeLog::NewValueSst)
33                            .rw_binary(manager)
34                            .not_null(),
35                    )
36                    .col(
37                        ColumnDef::new(HummockTableChangeLog::OldValueSst)
38                            .rw_binary(manager)
39                            .not_null(),
40                    )
41                    .primary_key(
42                        Index::create()
43                            .col(HummockTableChangeLog::TableId)
44                            .col(HummockTableChangeLog::CheckpointEpoch),
45                    )
46                    .to_owned(),
47            )
48            .await
49    }
50
51    async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
52        manager
53            .drop_table(Table::drop().table(HummockTableChangeLog::Table).to_owned())
54            .await
55    }
56}
57
58#[derive(DeriveIden)]
59enum HummockTableChangeLog {
60    Table,
61    TableId,
62    CheckpointEpoch,
63    NonCheckpointEpochs,
64    NewValueSst,
65    OldValueSst,
66}