Migrations
model! macro, makemigrations, migration up/down/status.
● ● ●
use runique::prelude::*;
model! {
Article,
table: "article",
pk: id => Pk,
{
title: text [max_length: 255, required],
content: text [required],
author_id: fk(User) [required],
published: bool [default: false],
}
}
# 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
}
}