risingwave_meta_model_migration/
m20251005_000000_fragment_splits.rs1use sea_orm_migration::prelude::*;
2
3use crate::drop_tables;
4use crate::utils::ColumnDefExt;
5
6#[derive(DeriveMigrationName)]
7pub struct Migration;
8
9#[async_trait::async_trait]
10impl MigrationTrait for Migration {
11 async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
12 manager
13 .create_table(
14 Table::create()
15 .table(FragmentSplits::Table)
16 .col(
17 ColumnDef::new(FragmentSplits::FragmentId)
18 .integer()
19 .primary_key()
20 .not_null(),
21 )
22 .col(ColumnDef::new(FragmentSplits::Splits).rw_binary(manager))
23 .foreign_key(
24 &mut ForeignKey::create()
25 .name("FK_fragment_splits_fragment_oid")
26 .from(FragmentSplits::Table, FragmentSplits::FragmentId)
27 .to(Fragment::Table, Fragment::FragmentId)
28 .on_delete(ForeignKeyAction::Cascade)
29 .to_owned(),
30 )
31 .to_owned(),
32 )
33 .await?;
34
35 Ok(())
36 }
37
38 async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
39 drop_tables!(manager, FragmentSplits);
40 Ok(())
41 }
42}
43
44#[derive(DeriveIden)]
45enum FragmentSplits {
46 Table,
47 FragmentId,
48 Splits,
49}
50
51#[derive(DeriveIden)]
52enum Fragment {
53 Table,
54 FragmentId,
55}