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> { manager .create_table( Table::create() .table(RefreshTokens::Table) .if_not_exists() .col(ColumnDef::new(RefreshTokens::Id).big_integer().not_null().auto_increment().primary_key()) .col(ColumnDef::new(RefreshTokens::UserId).big_integer().not_null()) .col(ColumnDef::new(RefreshTokens::TokenHash).string().not_null().unique_key()) .col(ColumnDef::new(RefreshTokens::ExpiresAt).timestamp().not_null()) .col(ColumnDef::new(RefreshTokens::CreatedAt).timestamp().not_null().default(Expr::current_timestamp())) .to_owned() ) .await?; Ok(()) } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { manager.drop_table(Table::drop().table(RefreshTokens::Table).to_owned()).await } } #[derive(Iden)] enum RefreshTokens { Table, Id, UserId, TokenHash, ExpiresAt, CreatedAt }