risingwave_meta_model_migration/
m20251030_120000_refresh_jobs.rs1use sea_orm_migration::prelude::*;
2
3#[derive(DeriveMigrationName)]
4pub struct Migration;
5
6#[async_trait::async_trait]
7impl MigrationTrait for Migration {
8 async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
9 manager
10 .create_table(
11 sea_orm_migration::prelude::Table::create()
12 .table(RefreshJob::Table)
13 .col(
14 ColumnDef::new(RefreshJob::TableId)
15 .integer()
16 .not_null()
17 .primary_key(),
18 )
19 .col(ColumnDef::new(RefreshJob::LastTriggerTime).big_integer())
20 .col(ColumnDef::new(RefreshJob::TriggerIntervalSecs).big_integer())
21 .col(
22 ColumnDef::new(RefreshJob::CurrentStatus)
23 .string()
24 .not_null()
25 .default("IDLE"),
26 )
27 .col(ColumnDef::new(RefreshJob::LastSuccessTime).big_integer())
28 .foreign_key(
29 ForeignKey::create()
30 .name("fk_refresh_job_table")
31 .from(RefreshJob::Table, RefreshJob::TableId)
32 .to(TableEnum::Table, TableEnum::TableId)
33 .on_delete(ForeignKeyAction::Cascade),
34 )
35 .to_owned(),
36 )
37 .await?;
38
39 manager
41 .alter_table(
42 Table::alter()
43 .table(TableEnum::Table)
44 .drop_column(TableEnum::RefreshState)
45 .to_owned(),
46 )
47 .await?;
48
49 Ok(())
50 }
51
52 async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
53 manager
54 .drop_table(
55 sea_orm_migration::prelude::Table::drop()
56 .table(RefreshJob::Table)
57 .to_owned(),
58 )
59 .await?;
60
61 manager
63 .alter_table(
64 Table::alter()
65 .table(TableEnum::Table)
66 .add_column(ColumnDef::new(TableEnum::RefreshState).string())
67 .to_owned(),
68 )
69 .await?;
70 Ok(())
71 }
72}
73
74#[derive(DeriveIden)]
75enum RefreshJob {
76 #[sea_orm(iden = "refresh_job")]
77 Table,
78 TableId,
79 LastTriggerTime,
80 TriggerIntervalSecs,
81 CurrentStatus,
82 LastSuccessTime,
83}
84
85#[derive(DeriveIden)]
86enum TableEnum {
87 #[sea_orm(iden = "table")]
88 Table,
89 TableId,
90 RefreshState,
91}