use welds::prelude::*;
#[derive(Debug, WeldsModel)]
#[welds(table = "i_dont_exist")]
pub struct NotInDb {
#[welds(primary_key)]
pub id: i32,
}
#[derive(Debug, WeldsModel)]
#[welds(table = "Orders")]
pub struct Order {
#[welds(primary_key)]
pub id: i32,
pub product_id: String,
}
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let connection_string = "sqlite::memory:";
let client = welds::connections::connect(connection_string).await?;
let schema = include_str!("../../tests/testlib/databases/sqlite/01_create_tables.sql");
client.execute(schema, &[]).await?;
println!();
let diff = welds::check::schema::<NotInDb>(client.as_ref()).await?;
for d in diff {
println!("{}", d);
}
let diff = welds::check::schema::<Order>(client.as_ref()).await?;
for d in &diff {
println!("{}", d);
}
println!();
println!("Orders Changed Columns:");
for d in &diff {
if let Some(changed) = d.kind.as_changed() {
if changed.type_changed() {
println!("{}", changed);
}
}
}
Ok(())
}