refactor: enforce unique constraints on account and account_category names; update foreign key actions

This commit is contained in:
GW_MC
2026-05-27 11:19:02 +00:00
parent 1b1f9777ec
commit 517fb37818
3 changed files with 8 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ impl MigrationTrait for Migration {
.table("account_category") .table("account_category")
.if_not_exists() .if_not_exists()
.col(pk_auto("id").not_null()) .col(pk_auto("id").not_null())
.col(string("name").not_null()) .col(string("name").not_null().unique_key())
.col(string("account_type").not_null()) .col(string("account_type").not_null())
.col(string("created_at").not_null()) .col(string("created_at").not_null())
.col(string("updated_at").not_null()) .col(string("updated_at").not_null())
@@ -27,7 +27,7 @@ impl MigrationTrait for Migration {
.if_not_exists() .if_not_exists()
.col(pk_auto("id").not_null()) .col(pk_auto("id").not_null())
// //
.col(string("name").not_null()) .col(string("name").not_null().unique_key())
.col(integer("account_category_id").not_null()) .col(integer("account_category_id").not_null())
// //
.col(string("created_at").not_null()) .col(string("created_at").not_null())
@@ -37,7 +37,9 @@ impl MigrationTrait for Migration {
ForeignKey::create() ForeignKey::create()
.name("fk-account-category") .name("fk-account-category")
.from("account", "account_category_id") .from("account", "account_category_id")
.to("account_category", "id"), .to("account_category", "id")
.on_delete(ForeignKeyAction::NoAction)
.on_update(ForeignKeyAction::Restrict),
) )
.to_owned(), .to_owned(),
) )

View File

@@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize};
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: i64, pub id: i64,
#[sea_orm(unique)]
pub name: String, pub name: String,
pub account_category_id: i64, pub account_category_id: i64,
pub created_at: String, pub created_at: String,
@@ -21,7 +22,7 @@ pub enum Relation {
belongs_to = "super::account_category::Entity", belongs_to = "super::account_category::Entity",
from = "Column::AccountCategoryId", from = "Column::AccountCategoryId",
to = "super::account_category::Column::Id", to = "super::account_category::Column::Id",
on_update = "NoAction", on_update = "Restrict",
on_delete = "NoAction" on_delete = "NoAction"
)] )]
AccountCategory, AccountCategory,

View File

@@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize};
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]
pub id: i64, pub id: i64,
#[sea_orm(unique)]
pub name: String, pub name: String,
pub account_type: String, pub account_type: String,
pub created_at: String, pub created_at: String,