diff --git a/crates/migration/src/m20260526_062833_create_account_table.rs b/crates/migration/src/m20260526_062833_create_account_table.rs index da698aa..f2e297e 100644 --- a/crates/migration/src/m20260526_062833_create_account_table.rs +++ b/crates/migration/src/m20260526_062833_create_account_table.rs @@ -12,7 +12,7 @@ impl MigrationTrait for Migration { .table("account_category") .if_not_exists() .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("created_at").not_null()) .col(string("updated_at").not_null()) @@ -27,7 +27,7 @@ impl MigrationTrait for Migration { .if_not_exists() .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(string("created_at").not_null()) @@ -37,7 +37,9 @@ impl MigrationTrait for Migration { ForeignKey::create() .name("fk-account-category") .from("account", "account_category_id") - .to("account_category", "id"), + .to("account_category", "id") + .on_delete(ForeignKeyAction::NoAction) + .on_update(ForeignKeyAction::Restrict), ) .to_owned(), ) diff --git a/src-tauri/src/db/entities/account.rs b/src-tauri/src/db/entities/account.rs index 77bc27e..ac925e5 100644 --- a/src-tauri/src/db/entities/account.rs +++ b/src-tauri/src/db/entities/account.rs @@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize}; pub struct Model { #[sea_orm(primary_key)] pub id: i64, + #[sea_orm(unique)] pub name: String, pub account_category_id: i64, pub created_at: String, @@ -21,7 +22,7 @@ pub enum Relation { belongs_to = "super::account_category::Entity", from = "Column::AccountCategoryId", to = "super::account_category::Column::Id", - on_update = "NoAction", + on_update = "Restrict", on_delete = "NoAction" )] AccountCategory, diff --git a/src-tauri/src/db/entities/account_category.rs b/src-tauri/src/db/entities/account_category.rs index 1ea9baf..b35ab07 100644 --- a/src-tauri/src/db/entities/account_category.rs +++ b/src-tauri/src/db/entities/account_category.rs @@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize}; pub struct Model { #[sea_orm(primary_key)] pub id: i64, + #[sea_orm(unique)] pub name: String, pub account_type: String, pub created_at: String,