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"
ALTER TABLE node
DROP COLUMN IF EXISTS created_by,
ADD COLUMN IF NOT EXISTS created_by_subject_id UUID NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
ADD COLUMN IF NOT EXISTS created_by_subject_type TEXT,
ADD COLUMN IF NOT EXISTS updated_by_subject_id UUID NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
ADD COLUMN IF NOT EXISTS updated_by_subject_type TEXT,
ADD COLUMN IF NOT EXISTS deleted_by_subject_id UUID,
ADD COLUMN IF NOT EXISTS deleted_by_subject_type TEXT;
ALTER TABLE edge
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
ADD COLUMN IF NOT EXISTS created_by_subject_id UUID NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
ADD COLUMN IF NOT EXISTS created_by_subject_type TEXT,
ADD COLUMN IF NOT EXISTS updated_by_subject_id UUID NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
ADD COLUMN IF NOT EXISTS updated_by_subject_type TEXT,
ADD COLUMN IF NOT EXISTS deleted_by_subject_id UUID,
ADD COLUMN IF NOT EXISTS deleted_by_subject_type TEXT;
",
)
.await?;
Ok(())
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.get_connection()
.execute_unprepared(
r"
ALTER TABLE node
DROP COLUMN IF EXISTS created_by_subject_id,
DROP COLUMN IF EXISTS created_by_subject_type,
DROP COLUMN IF EXISTS updated_by_subject_id,
DROP COLUMN IF EXISTS updated_by_subject_type,
DROP COLUMN IF EXISTS deleted_by_subject_id,
DROP COLUMN IF EXISTS deleted_by_subject_type,
ADD COLUMN IF NOT EXISTS created_by TEXT NOT NULL DEFAULT '';
ALTER TABLE edge
DROP COLUMN IF EXISTS updated_at,
DROP COLUMN IF EXISTS created_by_subject_id,
DROP COLUMN IF EXISTS created_by_subject_type,
DROP COLUMN IF EXISTS updated_by_subject_id,
DROP COLUMN IF EXISTS updated_by_subject_type,
DROP COLUMN IF EXISTS deleted_by_subject_id,
DROP COLUMN IF EXISTS deleted_by_subject_type;
",
)
.await?;
Ok(())
}
}