mirror of
https://github.com/aljazceru/cdk.git
synced 2025-12-19 05:35:18 +01:00
Improve migrations
Add the namespaced migrations and global migrations
This commit is contained in:
@@ -22,14 +22,29 @@ fn main() {
|
|||||||
|
|
||||||
writeln!(out_file, "/// @generated").unwrap();
|
writeln!(out_file, "/// @generated").unwrap();
|
||||||
writeln!(out_file, "/// Auto-generated by build.rs").unwrap();
|
writeln!(out_file, "/// Auto-generated by build.rs").unwrap();
|
||||||
writeln!(out_file, "pub static MIGRATIONS: &[(&str, &str)] = &[").unwrap();
|
writeln!(
|
||||||
|
out_file,
|
||||||
|
"pub static MIGRATIONS: &[(&str, &str, &str)] = &["
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
for path in &files {
|
for path in &files {
|
||||||
let rel_name = &path.to_str().unwrap().replace("\\", "/")[skip_name + 1..]; // for Windows
|
let parts = path.to_str().unwrap().replace("\\", "/")[skip_name + 1..]
|
||||||
|
.split("/")
|
||||||
|
.map(|x| x.to_owned())
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
let prefix = if parts.len() == 2 {
|
||||||
|
parts.first().map(|x| x.to_owned()).unwrap_or_default()
|
||||||
|
} else {
|
||||||
|
"".to_owned()
|
||||||
|
};
|
||||||
|
|
||||||
|
let rel_name = &path.file_name().unwrap().to_str().unwrap();
|
||||||
let rel_path = &path.to_str().unwrap().replace("\\", "/")[skip_path..]; // for Windows
|
let rel_path = &path.to_str().unwrap().replace("\\", "/")[skip_path..]; // for Windows
|
||||||
writeln!(
|
writeln!(
|
||||||
out_file,
|
out_file,
|
||||||
" (\"{rel_name}\", include_str!(r#\".{rel_path}\"#)),"
|
" (\"{prefix}\", \"{rel_name}\", include_str!(r#\".{rel_path}\"#)),"
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
println!("cargo:rerun-if-changed={}", path.display());
|
println!("cargo:rerun-if-changed={}", path.display());
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ use crate::stmt::query;
|
|||||||
pub async fn migrate<C: DatabaseExecutor>(
|
pub async fn migrate<C: DatabaseExecutor>(
|
||||||
conn: &C,
|
conn: &C,
|
||||||
db_prefix: &str,
|
db_prefix: &str,
|
||||||
migrations: &[(&str, &str)],
|
migrations: &[(&str, &str, &str)],
|
||||||
) -> Result<(), cdk_common::database::Error> {
|
) -> Result<(), cdk_common::database::Error> {
|
||||||
query(
|
query(
|
||||||
r#"
|
r#"
|
||||||
@@ -20,19 +20,13 @@ pub async fn migrate<C: DatabaseExecutor>(
|
|||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
// Apply each migration if it hasn’t been applied yet
|
// Apply each migration if it hasn’t been applied yet
|
||||||
for (name, sql) in migrations {
|
for (prefix, name, sql) in migrations {
|
||||||
let basename = match name.split_once(['/', '\\']) {
|
if !prefix.is_empty() && *prefix != db_prefix {
|
||||||
Some((prefix, basename)) => {
|
continue;
|
||||||
if prefix != db_prefix {
|
}
|
||||||
continue;
|
|
||||||
}
|
|
||||||
basename
|
|
||||||
}
|
|
||||||
None => name,
|
|
||||||
};
|
|
||||||
|
|
||||||
let is_missing = query("SELECT name FROM migrations WHERE name = :name")?
|
let is_missing = query("SELECT name FROM migrations WHERE name = :name")?
|
||||||
.bind("name", basename)
|
.bind("name", name)
|
||||||
.pluck(conn)
|
.pluck(conn)
|
||||||
.await?
|
.await?
|
||||||
.is_none();
|
.is_none();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/// @generated
|
/// @generated
|
||||||
/// Auto-generated by build.rs
|
/// Auto-generated by build.rs
|
||||||
pub static MIGRATIONS: &[(&str, &str)] = &[
|
pub static MIGRATIONS: &[(&str, &str, &str)] = &[
|
||||||
("sqlite/20250109143347_init.sql", include_str!(r#"./migrations/sqlite/20250109143347_init.sql"#)),
|
("sqlite", "20250109143347_init.sql", include_str!(r#"./migrations/sqlite/20250109143347_init.sql"#)),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
/// @generated
|
/// @generated
|
||||||
/// Auto-generated by build.rs
|
/// Auto-generated by build.rs
|
||||||
pub static MIGRATIONS: &[(&str, &str)] = &[
|
pub static MIGRATIONS: &[(&str, &str, &str)] = &[
|
||||||
("sqlite/1_fix_sqlx_migration.sql", include_str!(r#"./migrations/sqlite/1_fix_sqlx_migration.sql"#)),
|
("sqlite", "1_fix_sqlx_migration.sql", include_str!(r#"./migrations/sqlite/1_fix_sqlx_migration.sql"#)),
|
||||||
("sqlite/20240612124932_init.sql", include_str!(r#"./migrations/sqlite/20240612124932_init.sql"#)),
|
("sqlite", "20240612124932_init.sql", include_str!(r#"./migrations/sqlite/20240612124932_init.sql"#)),
|
||||||
("sqlite/20240618195700_quote_state.sql", include_str!(r#"./migrations/sqlite/20240618195700_quote_state.sql"#)),
|
("sqlite", "20240618195700_quote_state.sql", include_str!(r#"./migrations/sqlite/20240618195700_quote_state.sql"#)),
|
||||||
("sqlite/20240626092101_nut04_state.sql", include_str!(r#"./migrations/sqlite/20240626092101_nut04_state.sql"#)),
|
("sqlite", "20240626092101_nut04_state.sql", include_str!(r#"./migrations/sqlite/20240626092101_nut04_state.sql"#)),
|
||||||
("sqlite/20240703122347_request_lookup_id.sql", include_str!(r#"./migrations/sqlite/20240703122347_request_lookup_id.sql"#)),
|
("sqlite", "20240703122347_request_lookup_id.sql", include_str!(r#"./migrations/sqlite/20240703122347_request_lookup_id.sql"#)),
|
||||||
("sqlite/20240710145043_input_fee.sql", include_str!(r#"./migrations/sqlite/20240710145043_input_fee.sql"#)),
|
("sqlite", "20240710145043_input_fee.sql", include_str!(r#"./migrations/sqlite/20240710145043_input_fee.sql"#)),
|
||||||
("sqlite/20240711183109_derivation_path_index.sql", include_str!(r#"./migrations/sqlite/20240711183109_derivation_path_index.sql"#)),
|
("sqlite", "20240711183109_derivation_path_index.sql", include_str!(r#"./migrations/sqlite/20240711183109_derivation_path_index.sql"#)),
|
||||||
("sqlite/20240718203721_allow_unspent.sql", include_str!(r#"./migrations/sqlite/20240718203721_allow_unspent.sql"#)),
|
("sqlite", "20240718203721_allow_unspent.sql", include_str!(r#"./migrations/sqlite/20240718203721_allow_unspent.sql"#)),
|
||||||
("sqlite/20240811031111_update_mint_url.sql", include_str!(r#"./migrations/sqlite/20240811031111_update_mint_url.sql"#)),
|
("sqlite", "20240811031111_update_mint_url.sql", include_str!(r#"./migrations/sqlite/20240811031111_update_mint_url.sql"#)),
|
||||||
("sqlite/20240919103407_proofs_quote_id.sql", include_str!(r#"./migrations/sqlite/20240919103407_proofs_quote_id.sql"#)),
|
("sqlite", "20240919103407_proofs_quote_id.sql", include_str!(r#"./migrations/sqlite/20240919103407_proofs_quote_id.sql"#)),
|
||||||
("sqlite/20240923153640_melt_requests.sql", include_str!(r#"./migrations/sqlite/20240923153640_melt_requests.sql"#)),
|
("sqlite", "20240923153640_melt_requests.sql", include_str!(r#"./migrations/sqlite/20240923153640_melt_requests.sql"#)),
|
||||||
("sqlite/20240930101140_dleq_for_sigs.sql", include_str!(r#"./migrations/sqlite/20240930101140_dleq_for_sigs.sql"#)),
|
("sqlite", "20240930101140_dleq_for_sigs.sql", include_str!(r#"./migrations/sqlite/20240930101140_dleq_for_sigs.sql"#)),
|
||||||
("sqlite/20241108093102_mint_mint_quote_pubkey.sql", include_str!(r#"./migrations/sqlite/20241108093102_mint_mint_quote_pubkey.sql"#)),
|
("sqlite", "20241108093102_mint_mint_quote_pubkey.sql", include_str!(r#"./migrations/sqlite/20241108093102_mint_mint_quote_pubkey.sql"#)),
|
||||||
("sqlite/20250103201327_amount_to_pay_msats.sql", include_str!(r#"./migrations/sqlite/20250103201327_amount_to_pay_msats.sql"#)),
|
("sqlite", "20250103201327_amount_to_pay_msats.sql", include_str!(r#"./migrations/sqlite/20250103201327_amount_to_pay_msats.sql"#)),
|
||||||
("sqlite/20250129200912_remove_mint_url.sql", include_str!(r#"./migrations/sqlite/20250129200912_remove_mint_url.sql"#)),
|
("sqlite", "20250129200912_remove_mint_url.sql", include_str!(r#"./migrations/sqlite/20250129200912_remove_mint_url.sql"#)),
|
||||||
("sqlite/20250129230326_add_config_table.sql", include_str!(r#"./migrations/sqlite/20250129230326_add_config_table.sql"#)),
|
("sqlite", "20250129230326_add_config_table.sql", include_str!(r#"./migrations/sqlite/20250129230326_add_config_table.sql"#)),
|
||||||
("sqlite/20250307213652_keyset_id_as_foreign_key.sql", include_str!(r#"./migrations/sqlite/20250307213652_keyset_id_as_foreign_key.sql"#)),
|
("sqlite", "20250307213652_keyset_id_as_foreign_key.sql", include_str!(r#"./migrations/sqlite/20250307213652_keyset_id_as_foreign_key.sql"#)),
|
||||||
("sqlite/20250406091754_mint_time_of_quotes.sql", include_str!(r#"./migrations/sqlite/20250406091754_mint_time_of_quotes.sql"#)),
|
("sqlite", "20250406091754_mint_time_of_quotes.sql", include_str!(r#"./migrations/sqlite/20250406091754_mint_time_of_quotes.sql"#)),
|
||||||
("sqlite/20250406093755_mint_created_time_signature.sql", include_str!(r#"./migrations/sqlite/20250406093755_mint_created_time_signature.sql"#)),
|
("sqlite", "20250406093755_mint_created_time_signature.sql", include_str!(r#"./migrations/sqlite/20250406093755_mint_created_time_signature.sql"#)),
|
||||||
("sqlite/20250415093121_drop_keystore_foreign.sql", include_str!(r#"./migrations/sqlite/20250415093121_drop_keystore_foreign.sql"#)),
|
("sqlite", "20250415093121_drop_keystore_foreign.sql", include_str!(r#"./migrations/sqlite/20250415093121_drop_keystore_foreign.sql"#)),
|
||||||
("sqlite/20250626120251_rename_blind_message_y_to_b.sql", include_str!(r#"./migrations/sqlite/20250626120251_rename_blind_message_y_to_b.sql"#)),
|
("sqlite", "20250626120251_rename_blind_message_y_to_b.sql", include_str!(r#"./migrations/sqlite/20250626120251_rename_blind_message_y_to_b.sql"#)),
|
||||||
("sqlite/20250706101057_bolt12.sql", include_str!(r#"./migrations/sqlite/20250706101057_bolt12.sql"#)),
|
("sqlite", "20250706101057_bolt12.sql", include_str!(r#"./migrations/sqlite/20250706101057_bolt12.sql"#)),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
/// @generated
|
/// @generated
|
||||||
/// Auto-generated by build.rs
|
/// Auto-generated by build.rs
|
||||||
pub static MIGRATIONS: &[(&str, &str)] = &[
|
pub static MIGRATIONS: &[(&str, &str, &str)] = &[
|
||||||
("sqlite/20240612132920_init.sql", include_str!(r#"./migrations/sqlite/20240612132920_init.sql"#)),
|
("sqlite", "20240612132920_init.sql", include_str!(r#"./migrations/sqlite/20240612132920_init.sql"#)),
|
||||||
("sqlite/20240618200350_quote_state.sql", include_str!(r#"./migrations/sqlite/20240618200350_quote_state.sql"#)),
|
("sqlite", "20240618200350_quote_state.sql", include_str!(r#"./migrations/sqlite/20240618200350_quote_state.sql"#)),
|
||||||
("sqlite/20240626091921_nut04_state.sql", include_str!(r#"./migrations/sqlite/20240626091921_nut04_state.sql"#)),
|
("sqlite", "20240626091921_nut04_state.sql", include_str!(r#"./migrations/sqlite/20240626091921_nut04_state.sql"#)),
|
||||||
("sqlite/20240710144711_input_fee.sql", include_str!(r#"./migrations/sqlite/20240710144711_input_fee.sql"#)),
|
("sqlite", "20240710144711_input_fee.sql", include_str!(r#"./migrations/sqlite/20240710144711_input_fee.sql"#)),
|
||||||
("sqlite/20240810214105_mint_icon_url.sql", include_str!(r#"./migrations/sqlite/20240810214105_mint_icon_url.sql"#)),
|
("sqlite", "20240810214105_mint_icon_url.sql", include_str!(r#"./migrations/sqlite/20240810214105_mint_icon_url.sql"#)),
|
||||||
("sqlite/20240810233905_update_mint_url.sql", include_str!(r#"./migrations/sqlite/20240810233905_update_mint_url.sql"#)),
|
("sqlite", "20240810233905_update_mint_url.sql", include_str!(r#"./migrations/sqlite/20240810233905_update_mint_url.sql"#)),
|
||||||
("sqlite/20240902151515_icon_url.sql", include_str!(r#"./migrations/sqlite/20240902151515_icon_url.sql"#)),
|
("sqlite", "20240902151515_icon_url.sql", include_str!(r#"./migrations/sqlite/20240902151515_icon_url.sql"#)),
|
||||||
("sqlite/20240902210905_mint_time.sql", include_str!(r#"./migrations/sqlite/20240902210905_mint_time.sql"#)),
|
("sqlite", "20240902210905_mint_time.sql", include_str!(r#"./migrations/sqlite/20240902210905_mint_time.sql"#)),
|
||||||
("sqlite/20241011125207_mint_urls.sql", include_str!(r#"./migrations/sqlite/20241011125207_mint_urls.sql"#)),
|
("sqlite", "20241011125207_mint_urls.sql", include_str!(r#"./migrations/sqlite/20241011125207_mint_urls.sql"#)),
|
||||||
("sqlite/20241108092756_wallet_mint_quote_secretkey.sql", include_str!(r#"./migrations/sqlite/20241108092756_wallet_mint_quote_secretkey.sql"#)),
|
("sqlite", "20241108092756_wallet_mint_quote_secretkey.sql", include_str!(r#"./migrations/sqlite/20241108092756_wallet_mint_quote_secretkey.sql"#)),
|
||||||
("sqlite/20250214135017_mint_tos.sql", include_str!(r#"./migrations/sqlite/20250214135017_mint_tos.sql"#)),
|
("sqlite", "20250214135017_mint_tos.sql", include_str!(r#"./migrations/sqlite/20250214135017_mint_tos.sql"#)),
|
||||||
("sqlite/20250310111513_drop_nostr_last_checked.sql", include_str!(r#"./migrations/sqlite/20250310111513_drop_nostr_last_checked.sql"#)),
|
("sqlite", "20250310111513_drop_nostr_last_checked.sql", include_str!(r#"./migrations/sqlite/20250310111513_drop_nostr_last_checked.sql"#)),
|
||||||
("sqlite/20250314082116_allow_pending_spent.sql", include_str!(r#"./migrations/sqlite/20250314082116_allow_pending_spent.sql"#)),
|
("sqlite", "20250314082116_allow_pending_spent.sql", include_str!(r#"./migrations/sqlite/20250314082116_allow_pending_spent.sql"#)),
|
||||||
("sqlite/20250323152040_wallet_dleq_proofs.sql", include_str!(r#"./migrations/sqlite/20250323152040_wallet_dleq_proofs.sql"#)),
|
("sqlite", "20250323152040_wallet_dleq_proofs.sql", include_str!(r#"./migrations/sqlite/20250323152040_wallet_dleq_proofs.sql"#)),
|
||||||
("sqlite/20250401120000_add_transactions_table.sql", include_str!(r#"./migrations/sqlite/20250401120000_add_transactions_table.sql"#)),
|
("sqlite", "20250401120000_add_transactions_table.sql", include_str!(r#"./migrations/sqlite/20250401120000_add_transactions_table.sql"#)),
|
||||||
("sqlite/20250616144830_add_keyset_expiry.sql", include_str!(r#"./migrations/sqlite/20250616144830_add_keyset_expiry.sql"#)),
|
("sqlite", "20250616144830_add_keyset_expiry.sql", include_str!(r#"./migrations/sqlite/20250616144830_add_keyset_expiry.sql"#)),
|
||||||
("sqlite/20250707093445_bolt12.sql", include_str!(r#"./migrations/sqlite/20250707093445_bolt12.sql"#)),
|
("sqlite", "20250707093445_bolt12.sql", include_str!(r#"./migrations/sqlite/20250707093445_bolt12.sql"#)),
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user