risingwave_meta_model_migration/
m20250522_074947_iceberg_namespace_properties.rs

1use 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                Table::create()
12                    .table(IcebergNamespaceProperties::Table)
13                    .if_not_exists()
14                    .col(
15                        ColumnDef::new(IcebergNamespaceProperties::CatalogName)
16                            .string_len(255)
17                            .not_null(),
18                    )
19                    .col(
20                        ColumnDef::new(IcebergNamespaceProperties::Namespace)
21                            .string_len(255)
22                            .not_null(),
23                    )
24                    .col(
25                        ColumnDef::new(IcebergNamespaceProperties::PropertyKey)
26                            .string_len(255)
27                            .not_null(),
28                    )
29                    .col(
30                        ColumnDef::new(IcebergNamespaceProperties::PropertyValue)
31                            .string_len(1000)
32                            .null(),
33                    )
34                    .primary_key(
35                        Index::create()
36                            .col(IcebergNamespaceProperties::CatalogName)
37                            .col(IcebergNamespaceProperties::Namespace)
38                            .col(IcebergNamespaceProperties::PropertyKey),
39                    )
40                    .to_owned(),
41            )
42            .await
43    }
44
45    async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
46        manager
47            .drop_table(
48                Table::drop()
49                    .table(IcebergNamespaceProperties::Table)
50                    .to_owned(),
51            )
52            .await
53    }
54}
55
56#[derive(DeriveIden)]
57enum IcebergNamespaceProperties {
58    Table,
59    CatalogName,
60    Namespace,
61    PropertyKey,
62    PropertyValue,
63}