From 950a3bc20110fc1418577ad363c42fba60514ca4 Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Wed, 13 Mar 2024 16:51:17 +0800 Subject: [PATCH] Upstream Changes - 2 (#2149) * Upstream Changes - 2 * revert --- tests/common/bakery_chain/baker.rs | 2 +- tests/common/bakery_chain/cake.rs | 2 +- tests/common/bakery_chain/cakes_bakers.rs | 4 +--- tests/common/bakery_chain/lineitem.rs | 4 +--- tests/common/bakery_chain/order.rs | 4 +--- tests/common/bakery_chain/schema.rs | 16 +++++----------- tests/common/features/schema.rs | 4 +++- tests/sequential_op_tests.rs | 9 +-------- tests/sql_err_tests.rs | 13 +++++++------ 9 files changed, 21 insertions(+), 37 deletions(-) diff --git a/tests/common/bakery_chain/baker.rs b/tests/common/bakery_chain/baker.rs index df56613a..bc79425f 100644 --- a/tests/common/bakery_chain/baker.rs +++ b/tests/common/bakery_chain/baker.rs @@ -17,7 +17,7 @@ pub enum Relation { from = "Column::BakeryId", to = "super::bakery::Column::Id", on_update = "Cascade", - on_delete = "Cascade" + on_delete = "SetNull" )] Bakery, } diff --git a/tests/common/bakery_chain/cake.rs b/tests/common/bakery_chain/cake.rs index a43f989c..cf2928d7 100644 --- a/tests/common/bakery_chain/cake.rs +++ b/tests/common/bakery_chain/cake.rs @@ -21,7 +21,7 @@ pub enum Relation { from = "Column::BakeryId", to = "super::bakery::Column::Id", on_update = "Cascade", - on_delete = "Cascade" + on_delete = "SetNull" )] Bakery, #[sea_orm(has_many = "super::lineitem::Entity")] diff --git a/tests/common/bakery_chain/cakes_bakers.rs b/tests/common/bakery_chain/cakes_bakers.rs index e9543fba..92529870 100644 --- a/tests/common/bakery_chain/cakes_bakers.rs +++ b/tests/common/bakery_chain/cakes_bakers.rs @@ -22,9 +22,7 @@ pub enum Relation { #[sea_orm( belongs_to = "super::baker::Entity", from = "Column::BakerId", - to = "super::baker::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" + to = "super::baker::Column::Id" )] Baker, } diff --git a/tests/common/bakery_chain/lineitem.rs b/tests/common/bakery_chain/lineitem.rs index eb8b5878..fae4da78 100644 --- a/tests/common/bakery_chain/lineitem.rs +++ b/tests/common/bakery_chain/lineitem.rs @@ -25,9 +25,7 @@ pub enum Relation { #[sea_orm( belongs_to = "super::cake::Entity", from = "Column::CakeId", - to = "super::cake::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" + to = "super::cake::Column::Id" )] Cake, } diff --git a/tests/common/bakery_chain/order.rs b/tests/common/bakery_chain/order.rs index bc137fc9..01b5a06e 100644 --- a/tests/common/bakery_chain/order.rs +++ b/tests/common/bakery_chain/order.rs @@ -17,9 +17,7 @@ pub enum Relation { #[sea_orm( belongs_to = "super::bakery::Entity", from = "Column::BakeryId", - to = "super::bakery::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" + to = "super::bakery::Column::Id" )] Bakery, #[sea_orm( diff --git a/tests/common/bakery_chain/schema.rs b/tests/common/bakery_chain/schema.rs index c40a6181..664ffe96 100644 --- a/tests/common/bakery_chain/schema.rs +++ b/tests/common/bakery_chain/schema.rs @@ -58,7 +58,7 @@ pub async fn create_baker_table(db: &DbConn) -> Result { .name("fk-baker-bakery_id") .from(baker::Entity, baker::Column::BakeryId) .to(bakery::Entity, bakery::Column::Id) - .on_delete(ForeignKeyAction::Cascade) + .on_delete(ForeignKeyAction::SetNull) .on_update(ForeignKeyAction::Cascade), ) .to_owned(); @@ -113,9 +113,7 @@ pub async fn create_order_table(db: &DbConn) -> Result { ForeignKey::create() .name("fk-order-bakery_id") .from(order::Entity, order::Column::BakeryId) - .to(bakery::Entity, bakery::Column::Id) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade), + .to(bakery::Entity, bakery::Column::Id), ) .foreign_key( ForeignKey::create() @@ -172,9 +170,7 @@ pub async fn create_lineitem_table(db: &DbConn) -> Result { ForeignKey::create() .name("fk-lineitem-cake_id") .from(lineitem::Entity, lineitem::Column::CakeId) - .to(cake::Entity, cake::Column::Id) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade), + .to(cake::Entity, cake::Column::Id), ) .to_owned(); @@ -212,9 +208,7 @@ pub async fn create_cakes_bakers_table(db: &DbConn) -> Result ForeignKey::create() .name("fk-cakes_bakers-baker_id") .from(cakes_bakers::Entity, cakes_bakers::Column::BakerId) - .to(baker::Entity, baker::Column::Id) - .on_delete(ForeignKeyAction::Cascade) - .on_update(ForeignKeyAction::Cascade), + .to(baker::Entity, baker::Column::Id), ) .to_owned(); @@ -243,7 +237,7 @@ pub async fn create_cake_table(db: &DbConn) -> Result { .name("fk-cake-bakery_id") .from(cake::Entity, cake::Column::BakeryId) .to(bakery::Entity, bakery::Column::Id) - .on_delete(ForeignKeyAction::Cascade) + .on_delete(ForeignKeyAction::SetNull) .on_update(ForeignKeyAction::Cascade), ) .col( diff --git a/tests/common/features/schema.rs b/tests/common/features/schema.rs index 7a8cf814..2e7e4e00 100644 --- a/tests/common/features/schema.rs +++ b/tests/common/features/schema.rs @@ -45,7 +45,9 @@ pub async fn create_tables(db: &DatabaseConnection) -> Result<(), DbErr> { create_edit_log_table(db).await?; create_teas_table(db).await?; create_binary_table(db).await?; - create_bits_table(db).await?; + if matches!(db_backend, DbBackend::Postgres) { + create_bits_table(db).await?; + } create_dyn_table_name_lazy_static_table(db).await?; create_value_type_table(db).await?; diff --git a/tests/sequential_op_tests.rs b/tests/sequential_op_tests.rs index 0d2ca8f6..bc7126df 100644 --- a/tests/sequential_op_tests.rs +++ b/tests/sequential_op_tests.rs @@ -3,11 +3,9 @@ pub mod common; pub use chrono::offset::Utc; pub use common::{bakery_chain::*, setup::*, TestContext}; pub use rust_decimal::prelude::*; +pub use sea_orm::{entity::*, query::*, DatabaseConnection, FromQueryResult}; pub use uuid::Uuid; -#[cfg(any(feature = "sqlx-mysql", feature = "sqlx-postgres"))] -use sea_orm::{entity::*, query::*, DatabaseConnection, FromQueryResult}; - // Run the test locally: // DATABASE_URL="mysql://root:@localhost" cargo test --features sqlx-mysql,runtime-async-std --test sequential_op_tests #[sea_orm_macros::test] @@ -29,7 +27,6 @@ pub async fn test_multiple_operations() { ctx.delete().await; } -#[cfg(any(feature = "sqlx-mysql", feature = "sqlx-postgres"))] async fn seed_data(db: &DatabaseConnection) { let bakery = bakery::ActiveModel { name: Set("SeaSide Bakery".to_owned()), @@ -131,7 +128,6 @@ async fn seed_data(db: &DatabaseConnection) { .expect("could not insert order"); } -#[cfg(any(feature = "sqlx-mysql", feature = "sqlx-postgres"))] async fn find_baker_least_sales(db: &DatabaseConnection) -> Option { #[cfg(any(feature = "sqlx-postgres"))] type Type = i64; @@ -194,7 +190,6 @@ async fn find_baker_least_sales(db: &DatabaseConnection) -> Option .unwrap() } -#[cfg(any(feature = "sqlx-mysql", feature = "sqlx-postgres"))] async fn create_cake(db: &DatabaseConnection, baker: baker::Model) -> Option { let new_cake = cake::ActiveModel { name: Set("New Cake".to_owned()), @@ -230,7 +225,6 @@ async fn create_cake(db: &DatabaseConnection, baker: baker::Model) -> Option cake.into_active_model(), + } + .insert(db) + .await + .expect_err("inserting should fail due to duplicate primary key"); assert!(matches!( error.sql_err(),