#![cfg(any(feature = "sqlite", feature = "postgresql", feature = "mysql"))]
use ormer::Model;
pub mod _test_common;
define_test_user_direct!(TestDirectUser, "test_direct_users_1");
async fn test_direct_create_table_impl(
config: &_test_common::DbConfig,
) -> Result<(), Box<dyn std::error::Error>> {
let db = _test_common::create_db_connection(config).await?;
println!("Creating table...");
db.create_table::<TestDirectUser>().execute().await?;
println!("Table created successfully!");
let user = TestDirectUser {
id: 0, name: "Test".to_string(),
age: 25,
};
let _values = user.field_values();
let columns = <TestDirectUser as ormer::Model>::COLUMNS.join(", ");
let placeholders: Vec<String> = (1..=<TestDirectUser as ormer::Model>::COLUMNS.len())
.map(|_| "?".to_string())
.collect();
let sql = format!(
"INSERT INTO {} ({}) VALUES ({})",
<TestDirectUser as ormer::Model>::TABLE_NAME,
columns,
placeholders.join(", ")
);
println!("INSERT SQL: '{}'", sql);
println!("SQL length: {}", sql.len());
db.insert(&user).execute().await?;
println!("Data inserted successfully!");
let users: Vec<TestDirectUser> = db.select::<TestDirectUser>().collect().await?;
println!("Users: {:?}", users);
db.drop_table::<TestDirectUser>().execute().await?;
Ok(())
}
test_on_all_dbs_result!(test_direct_create_table_impl);