Make title optional in db
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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.alter_table(
|
||||
TableAlterStatement::new()
|
||||
.table(Transaction::Table)
|
||||
.modify_column(ColumnDef::new(Transaction::Title).string().null())
|
||||
.to_owned()
|
||||
).await?;
|
||||
|
||||
// Set all empty string titles to null
|
||||
manager.get_connection().execute_unprepared(r#"
|
||||
update transaction
|
||||
set title = null
|
||||
where title = ''
|
||||
"#).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
|
||||
// Set all null titles to empty string when reverting
|
||||
manager.get_connection().execute_unprepared(r#"
|
||||
update transaction
|
||||
set title = ''
|
||||
where title is null
|
||||
"#).await?;
|
||||
|
||||
manager.alter_table(
|
||||
TableAlterStatement::new()
|
||||
.table(Transaction::Table)
|
||||
.modify_column(ColumnDef::new(Transaction::Title).string().not_null())
|
||||
.to_owned()
|
||||
).await
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(DeriveIden)]
|
||||
enum Transaction {
|
||||
Table,
|
||||
Title,
|
||||
}
|
||||
Reference in New Issue
Block a user