You've already forked flix
69 lines
1.7 KiB
Rust
69 lines
1.7 KiB
Rust
use sea_orm::sea_query;
|
|
use sea_orm::sea_query::{ForeignKeyCreateStatement, Index, Table};
|
|
use sea_orm::{DbErr, Iden};
|
|
use sea_orm_migration::SchemaManager;
|
|
use sea_orm_migration::schema::{date, integer, string};
|
|
|
|
use crate::migration::m_000001::FlixInfoShows;
|
|
|
|
use super::FlixInfoSeasons;
|
|
|
|
#[derive(Iden)]
|
|
pub enum FlixInfoEpisodes {
|
|
Table,
|
|
Show,
|
|
Season,
|
|
Episode,
|
|
Title,
|
|
Overview,
|
|
Date,
|
|
}
|
|
|
|
pub async fn up(manager: &SchemaManager<'_>) -> Result<(), DbErr> {
|
|
manager
|
|
.create_table(
|
|
Table::create()
|
|
.table(FlixInfoEpisodes::Table)
|
|
.col(integer(FlixInfoEpisodes::Show))
|
|
.col(integer(FlixInfoEpisodes::Season))
|
|
.col(integer(FlixInfoEpisodes::Episode))
|
|
.col(string(FlixInfoEpisodes::Title))
|
|
.col(string(FlixInfoEpisodes::Overview))
|
|
.col(date(FlixInfoEpisodes::Date))
|
|
.primary_key(
|
|
Index::create()
|
|
.col(FlixInfoEpisodes::Show)
|
|
.col(FlixInfoEpisodes::Season)
|
|
.col(FlixInfoEpisodes::Episode),
|
|
)
|
|
.foreign_key(
|
|
ForeignKeyCreateStatement::new()
|
|
.name("fk-flix_info_episodes-show")
|
|
.from_tbl(FlixInfoEpisodes::Table)
|
|
.from_col(FlixInfoEpisodes::Show)
|
|
.to_tbl(FlixInfoShows::Table)
|
|
.to_col(FlixInfoShows::Id),
|
|
)
|
|
.foreign_key(
|
|
ForeignKeyCreateStatement::new()
|
|
.name("fk-flix_info_episodes-show_season")
|
|
.from_tbl(FlixInfoEpisodes::Table)
|
|
.from_col(FlixInfoEpisodes::Show)
|
|
.from_col(FlixInfoEpisodes::Season)
|
|
.to_tbl(FlixInfoSeasons::Table)
|
|
.to_col(FlixInfoSeasons::Show)
|
|
.to_col(FlixInfoSeasons::Season),
|
|
)
|
|
.to_owned(),
|
|
)
|
|
.await?;
|
|
|
|
Ok(())
|
|
}
|
|
|
|
pub async fn down(manager: &SchemaManager<'_>) -> Result<(), DbErr> {
|
|
manager
|
|
.drop_table(Table::drop().table(FlixInfoEpisodes::Table).to_owned())
|
|
.await
|
|
}
|