From 44d75baeec4bbaee2bb0d770ef27911755c0a252 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 19 Dec 2023 22:26:04 -0500 Subject: [PATCH] update old record with token --- Cargo.lock | 1 + crates/cli/migration-tool/Cargo.toml | 1 + .../copy_cloud_files.rs | 8 ++++++++ .../voice_conversion_to_weights/migrate.rs | 5 ++++- ...model_weight_from_voice_conversion_model.rs | 18 +++++++++++++++--- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 840d827860..4fd0695c9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3519,6 +3519,7 @@ dependencies = [ "easyenv", "enums", "errors", + "filesys", "hashing", "log", "my-workspace-hack", diff --git a/crates/cli/migration-tool/Cargo.toml b/crates/cli/migration-tool/Cargo.toml index 26e243858e..bf2cc11e90 100644 --- a/crates/cli/migration-tool/Cargo.toml +++ b/crates/cli/migration-tool/Cargo.toml @@ -20,6 +20,7 @@ config = { path = "../../lib/deprecated/config" } easyenv = { path = "../../lib/easyenv" } enums = { path = "../../_types/enums" } errors = { path = "../../lib/errors" } +filesys = { path = "../../lib/files/filesys" } hashing = { path = "../../lib/files/hashing" } mysql_queries = { path = "../../lib/mysql_queries" } storyteller_root = { path = "../../lib/storyteller_root" } diff --git a/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/copy_cloud_files.rs b/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/copy_cloud_files.rs index 9d5f3468de..ebc35303ce 100644 --- a/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/copy_cloud_files.rs +++ b/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/copy_cloud_files.rs @@ -4,6 +4,8 @@ use buckets::public::weight_files::bucket_file_path::WeightFileBucketPath; use cloud_storage::bucket_path_unifier::BucketPathUnifier; use enums::by_table::voice_conversion_models::voice_conversion_model_type::VoiceConversionModelType; use errors::{anyhow, AnyhowResult}; +use filesys::safe_delete_temp_directory::safe_delete_temp_directory; +use filesys::safe_delete_temp_file::safe_delete_temp_file; use hashing::sha256::sha256_hash_file::sha256_hash_file; use mysql_queries::queries::model_weights::migration::upsert_model_weight_from_voice_conversion_model::CopiedFileData; use mysql_queries::queries::voice_conversion::migration::list_whole_voice_conversion_models_using_cursor::WholeVoiceConversionModelRecord; @@ -48,6 +50,9 @@ async fn copy_model(model: &WholeVoiceConversionModelRecord, deps: &Deps) -> Any &model_temp_fs_path, "application/octet-stream").await?; + safe_delete_temp_file(&model_temp_fs_path); + safe_delete_temp_directory(&temp_dir); + Ok(CopiedFileData { bucket_path: new_model_bucket_path, file_sha_hash: file_checksum, @@ -73,5 +78,8 @@ async fn copy_index_file(model: &WholeVoiceConversionModelRecord, deps: &Deps, b &model_temp_fs_path, "application/octet-stream").await?; + safe_delete_temp_file(&model_temp_fs_path); + safe_delete_temp_directory(&temp_dir); + Ok(()) // NB: We don't care about the path of the index file. } diff --git a/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/migrate.rs b/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/migrate.rs index 4263697209..6c9beacc14 100644 --- a/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/migrate.rs +++ b/crates/cli/migration-tool/src/migrations/voice_conversion_to_weights/migrate.rs @@ -61,7 +61,10 @@ async fn copy_model_record_and_bucket_files(record: &WholeVoiceConversionModelRe } } - upsert_model_weight_from_voice_conversion_model(record, &deps.mysql_production, maybe_copied_data.as_ref()).await?; + if let Some(copied_data) = &maybe_copied_data { + info!("Upserting records..."); + upsert_model_weight_from_voice_conversion_model(record, &deps.mysql_production, copied_data).await?; + } Ok(()) } diff --git a/crates/lib/mysql_queries/src/queries/model_weights/migration/upsert_model_weight_from_voice_conversion_model.rs b/crates/lib/mysql_queries/src/queries/model_weights/migration/upsert_model_weight_from_voice_conversion_model.rs index bbcc71323e..76799a629c 100644 --- a/crates/lib/mysql_queries/src/queries/model_weights/migration/upsert_model_weight_from_voice_conversion_model.rs +++ b/crates/lib/mysql_queries/src/queries/model_weights/migration/upsert_model_weight_from_voice_conversion_model.rs @@ -22,14 +22,14 @@ pub struct CopiedFileData { pub async fn upsert_model_weight_from_voice_conversion_model( record: &WholeVoiceConversionModelRecord, mysql_pool: &MySqlPool, - maybe_copied_data: Option<&CopiedFileData>, + copied_data: &CopiedFileData, ) -> AnyhowResult<()> { let mut transaction = mysql_pool.begin().await?; let model_weight_token = create_or_generate_token(record); - upsert_model_weights_record(record, &model_weight_token, maybe_copied_data, &mut transaction).await?; + upsert_model_weights_record(record, &model_weight_token, copied_data, &mut transaction).await?; upsert_model_weights_extension_record(record, &model_weight_token, &mut transaction).await?; update_original_record(record, &model_weight_token, &mut transaction).await?; @@ -49,7 +49,7 @@ pub fn create_or_generate_token(record: &WholeVoiceConversionModelRecord) -> Mod pub async fn upsert_model_weights_record( record: &WholeVoiceConversionModelRecord, model_weight_token: &ModelWeightToken, - maybe_copied_data: Option<&CopiedFileData>, + copied_data: &CopiedFileData, mut transaction: &mut Transaction<'_, MySql>, ) -> AnyhowResult<()> { @@ -226,6 +226,18 @@ pub async fn update_original_record( model_weight_token: &ModelWeightToken, transaction: &mut Transaction<'_, MySql> ) -> AnyhowResult<()> { + let query = sqlx::query!( + r#" +UPDATE voice_conversion_models +SET + maybe_migration_new_model_weights_token = ? +WHERE token = ? + "#, + model_weight_token, + record.token, + ); + + let _r = query.execute(&mut **transaction).await?; Ok(()) }