sql_from_models-proc-macro 0.1.10

A helper crate for `models`
Documentation
use crate::prelude::*;
// SQLX_MODELS_GENERATE_MIGRATION=true
// MODELS_GENERATE_MIGRATIONS

pub fn generate_migration(name: &Ident) -> TokenStream2 {
    if let Ok(value) = std::env::var("MODELS_GENERATE_MIGRATIONS") {
        if value.to_lowercase() == "true" {
            generate_migration_unchecked(name)
        } else {
            quote!()
        }
    } else {
        quote!()
    }
}

fn generate_migration_unchecked(name: &Ident) -> TokenStream2 {
    let test_name = Ident::new(
        &format!("__models_generate_migration_{}", name),
        proc_macro2::Span::call_site(),
    );
    quote! {
        #[test]
        fn #test_name() {
            ::sql_from_models::private::SCHEDULER.register(
                <#name as ::sql_from_models::private::Model>::target()
            );
        }
    }
}