forked from asklyphe-public/asklyphe
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
use sea_orm_migration::{prelude::*, schema::*};
 | 
						|
use crate::m20240814_013106_create_user::User;
 | 
						|
 | 
						|
#[derive(DeriveMigrationName)]
 | 
						|
pub struct Migration;
 | 
						|
 | 
						|
#[async_trait::async_trait]
 | 
						|
impl MigrationTrait for Migration {
 | 
						|
    async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
 | 
						|
        manager
 | 
						|
            .create_table(
 | 
						|
                Table::create()
 | 
						|
                    .table(Announcement::Table)
 | 
						|
                    .if_not_exists()
 | 
						|
                    .col(ColumnDef::new(Announcement::Slug).string().not_null().unique_key().primary_key())
 | 
						|
                    .col(ColumnDef::new(Announcement::Title).string().not_null())
 | 
						|
                    .col(ColumnDef::new(Announcement::ShortTextNotice).string().not_null())
 | 
						|
                    .col(ColumnDef::new(Announcement::FullMarkdownNotice).string().not_null())
 | 
						|
                    .col(ColumnDef::new(Announcement::CreatorId).string().not_null())
 | 
						|
                    .col(ColumnDef::new(Announcement::CreatedOn).date_time().not_null())
 | 
						|
                    .col(ColumnDef::new(Announcement::UpdatedOn).date_time())
 | 
						|
                    .col(ColumnDef::new(Announcement::Flags).integer().not_null())
 | 
						|
                    .foreign_key(ForeignKey::create()
 | 
						|
                        .name("fk-announcement-user")
 | 
						|
                        .from(Announcement::Table, Announcement::CreatorId)
 | 
						|
                        .to(User::Table, User::Id)
 | 
						|
                        .on_delete(ForeignKeyAction::NoAction)
 | 
						|
                    )
 | 
						|
                    .to_owned(),
 | 
						|
            )
 | 
						|
            .await
 | 
						|
    }
 | 
						|
 | 
						|
    async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
 | 
						|
        manager
 | 
						|
            .drop_table(Table::drop().table(Announcement::Table).to_owned())
 | 
						|
            .await
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#[derive(DeriveIden)]
 | 
						|
enum Announcement {
 | 
						|
    Table,
 | 
						|
    Slug,
 | 
						|
    Title,
 | 
						|
    ShortTextNotice,
 | 
						|
    FullMarkdownNotice,
 | 
						|
    CreatorId,
 | 
						|
    CreatedOn,
 | 
						|
    UpdatedOn,
 | 
						|
    Flags,
 | 
						|
}
 |