#![cfg(any(feature = "sqlite", feature = "postgresql", feature = "mysql"))]
mod _test_common;
define_test_user_for_fk!(TestUser, "test_fk_users_1");
define_test_role_for_fk!(TestRole, "test_fk_roles_1", TestUser);
async fn test_foreign_key_creation_impl(
config: &_test_common::DbConfig,
) -> Result<(), Box<dyn std::error::Error>> {
let db = _test_common::create_db_connection(config).await?;
db.create_table::<TestUser>().execute().await?;
db.create_table::<TestRole>().execute().await?;
println!("Tables created successfully with foreign key constraints");
db.insert(&TestUser {
id: 1,
name: "Alice".to_string(),
})
.execute()
.await?;
db.insert(&TestRole {
id: 1,
user_id: 1,
role_name: "admin".to_string(),
})
.execute()
.await?;
println!("Foreign key test passed!");
db.drop_table::<TestRole>().execute().await?;
db.drop_table::<TestUser>().execute().await?;
Ok(())
}
test_on_all_dbs_result!(test_foreign_key_creation_impl);