use sea_orm_migration::prelude::*;
use sea_orm_migration::sea_orm::ConnectionTrait;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.get_connection()
.execute_unprepared(
r"
CREATE TABLE IF NOT EXISTS source_namespace_owner (
tenant_id UUID NOT NULL,
namespace TEXT NOT NULL,
owner_principal TEXT NOT NULL,
claimed_at TIMESTAMPTZ NOT NULL DEFAULT now(),
previous_owner TEXT,
transferred_at TIMESTAMPTZ,
transferred_by_subject_id UUID,
transferred_by_subject_type TEXT,
PRIMARY KEY (tenant_id, namespace)
);
",
)
.await?;
Ok(())
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.get_connection()
.execute_unprepared("DROP TABLE IF EXISTS source_namespace_owner;")
.await?;
Ok(())
}
}