magnetar/ext_model/migration/src/m20240112_215106_remove_pag...

119 lines
5.0 KiB
Rust
Raw Normal View History

2024-01-12 22:13:00 +00:00
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
let db = manager.get_connection();
db.execute_unprepared(
r#"
ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId";
DROP TABLE "page_like";
DROP TABLE "page";
"#,
)
.await?;
Ok(())
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
let db = manager.get_connection();
db.execute_unprepared(
r#"
create table page
(
id varchar(32) not null
constraint "PK_742f4117e065c5b6ad21b37ba1f"
primary key,
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
title varchar(256) not null,
name varchar(256) not null,
summary varchar(256),
"alignCenter" boolean not null,
font varchar(32) not null,
"userId" varchar(32) not null
constraint "FK_ae1d917992dd0c9d9bbdad06c4a"
references "user"
on delete cascade,
"eyeCatchingImageId" varchar(32)
constraint "FK_a9ca79ad939bf06066b81c9d3aa"
references drive_file
on delete cascade,
content jsonb default '[]'::jsonb not null,
variables jsonb default '[]'::jsonb not null,
visibility page_visibility_enum not null,
"visibleUserIds" varchar(32)[] default '{}'::character varying[] not null,
"likedCount" integer default 0 not null,
"hideTitleWhenPinned" boolean default false not null,
script varchar(16384) default ''::character varying not null,
"isPublic" boolean default true not null
);
comment on column page."createdAt" is 'The created date of the Page.';
comment on column page."updatedAt" is 'The updated date of the Page.';
comment on column page."userId" is 'The ID of author.';
create index "IDX_fbb4297c927a9b85e9cefa2eb1"
on page ("createdAt");
create index "IDX_af639b066dfbca78b01a920f8a"
on page ("updatedAt");
create index "IDX_b82c19c08afb292de4600d99e4"
on page (name);
create index "IDX_ae1d917992dd0c9d9bbdad06c4"
on page ("userId");
create index "IDX_90148bbc2bf0854428786bfc15"
on page ("visibleUserIds");
create unique index "IDX_2133ef8317e4bdb839c0dcbf13"
on page ("userId", name);
create table page_like
(
id varchar(32) not null
constraint "PK_813f034843af992d3ae0f43c64c"
primary key,
"createdAt" timestamp with time zone not null,
"userId" varchar(32) not null
constraint "FK_0e61efab7f88dbb79c9166dbb48"
references "user"
on delete cascade,
"pageId" varchar(32) not null
constraint "FK_cf8782626dced3176038176a847"
references page
on delete cascade
);
create index "IDX_0e61efab7f88dbb79c9166dbb4"
on page_like ("userId");
create unique index "IDX_4ce6fb9c70529b4c8ac46c9bfa"
on page_like ("userId", "pageId");
alter table user_profile
add "pinnedPageId" varchar(32)
constraint "UQ_6dc44f1ceb65b1e72bacef2ca27"
unique
constraint "FK_6dc44f1ceb65b1e72bacef2ca27"
references page
on delete set null;
"#,
)
.await?;
Ok(())
}
}