Migrations
model! macro, makemigrations, migration up/down/status.
● ● ●
use runique::prelude::*;
derive_form! {
Article {
fields: {
title: text [max_length: 255, required]
content: text [required]
author_id: fk(User) [required]
published: bool [default: false]
}
meta: { table_name: "article" }
}
}
# Generate migration files from entities
runique makemigrations
# Apply all pending migrations
runique migrate up
# Revert the last migration
runique migrate down
# View migration status
runique migrate status
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(Alias::new("article"))
.if_not_exists()
.col(ColumnDef::new(Alias::new("id")).integer().not_null()
.auto_increment().primary_key())
.col(ColumnDef::new(Alias::new("title")).string().not_null())
.col(ColumnDef::new(Alias::new("content")).text().not_null())
.col(ColumnDef::new(Alias::new("published")).boolean().not_null()
.default(false))
.to_owned(),
).await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager.drop_table(Table::drop().table(Alias::new("article")).to_owned()).await
}
}