From be8822dce40180228271c2b82e5edd3072aed9aa Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 1 Aug 2024 21:20:39 -0400 Subject: [PATCH] fix errors, codegen db --- ...621bf73a386d754a79c5150cd30dc8ee2170f.json | 25 +++++++++++++++++++ ...e1b718aca097437568e0957416586eba922d.json} | 17 ++++++++++--- ...74506990f659c9a0ed2de1fcb8e6fd953e726.json | 12 --------- .../create_all_model_weight_documents.rs | 1 + ...create_dimensional_media_file_documents.rs | 2 ++ .../database_time/get_database_time.rs | 14 ++++++++--- ...or_elastic_search_backfill_using_cursor.rs | 6 ++--- ...del_weights_for_elastic_search_backfill.rs | 6 ++--- ...or_elastic_search_backfill_using_cursor.rs | 11 ++++++-- 9 files changed, 67 insertions(+), 27 deletions(-) create mode 100644 .sqlx/query-47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f.json rename .sqlx/{query-6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21.json => query-64d5f1637d1106b5f5a7e8683621e1b718aca097437568e0957416586eba922d.json} (88%) delete mode 100644 .sqlx/query-a3066dd68c77b5381104a754b2774506990f659c9a0ed2de1fcb8e6fd953e726.json diff --git a/.sqlx/query-47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f.json b/.sqlx/query-47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f.json new file mode 100644 index 0000000000..48e2083ef0 --- /dev/null +++ b/.sqlx/query-47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f.json @@ -0,0 +1,25 @@ +{ + "db_name": "MySQL", + "query": "\nSELECT NOW() as database_time\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "database_time", + "type_info": { + "type": "Datetime", + "flags": "NOT_NULL | BINARY", + "char_set": 63, + "max_size": 19 + } + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false + ] + }, + "hash": "47a6c402aad596530aef2c71c1e621bf73a386d754a79c5150cd30dc8ee2170f" +} diff --git a/.sqlx/query-6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21.json b/.sqlx/query-64d5f1637d1106b5f5a7e8683621e1b718aca097437568e0957416586eba922d.json similarity index 88% rename from .sqlx/query-6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21.json rename to .sqlx/query-64d5f1637d1106b5f5a7e8683621e1b718aca097437568e0957416586eba922d.json index 91e4a5223c..46804d4c5e 100644 --- a/.sqlx/query-6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21.json +++ b/.sqlx/query-64d5f1637d1106b5f5a7e8683621e1b718aca097437568e0957416586eba922d.json @@ -1,6 +1,6 @@ { "db_name": "MySQL", - "query": "\nSELECT\n w.id,\n w.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n\n w.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n w.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n w.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n w.title,\n\n cover_image.token as `maybe_cover_image_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n w.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n extension_tts.ietf_language_tag as maybe_tts_ietf_language_tag,\n extension_tts.ietf_primary_language_subtag as maybe_tts_ietf_primary_language_subtag,\n\n extension_vc.ietf_language_tag as maybe_vc_ietf_language_tag,\n extension_vc.ietf_primary_language_subtag as maybe_vc_ietf_primary_language_subtag,\n\n w.created_at,\n w.updated_at,\n w.user_deleted_at,\n w.mod_deleted_at\n\nFROM model_weights as w\n\nJOIN users\n ON users.token = w.creator_user_token\n\nLEFT OUTER JOIN model_weights_extension_tts_details as extension_tts\n ON extension_tts.model_weights_token = w.token\nLEFT OUTER JOIN model_weights_extension_voice_conversion_details as extension_vc\n ON extension_vc.model_weights_token = w.token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weights\"\n AND entity_stats.entity_token = w.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = w.maybe_cover_image_media_file_token\n\nWHERE\n w.id > ?\nORDER BY id ASC\nLIMIT ?\n ", + "query": "\nSELECT\n w.id,\n w.token as `token: tokens::tokens::model_weights::ModelWeightToken`,\n\n w.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n w.weights_type as `weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n w.weights_category as `weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n w.title,\n\n cover_image.token as `maybe_cover_image_media_file_token: tokens::tokens::media_files::MediaFileToken`,\n cover_image.public_bucket_directory_hash as maybe_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_cover_image_public_bucket_extension,\n\n w.creator_user_token as `creator_user_token: tokens::tokens::users::UserToken`,\n users.username as creator_username,\n users.display_name as creator_display_name,\n users.email_gravatar_hash as creator_gravatar_hash,\n\n entity_stats.ratings_positive_count as maybe_ratings_positive_count,\n entity_stats.ratings_negative_count as maybe_ratings_negative_count,\n entity_stats.bookmark_count as maybe_bookmark_count,\n\n extension_tts.ietf_language_tag as maybe_tts_ietf_language_tag,\n extension_tts.ietf_primary_language_subtag as maybe_tts_ietf_primary_language_subtag,\n\n extension_vc.ietf_language_tag as maybe_vc_ietf_language_tag,\n extension_vc.ietf_primary_language_subtag as maybe_vc_ietf_primary_language_subtag,\n\n w.created_at,\n w.updated_at,\n w.user_deleted_at,\n w.mod_deleted_at,\n\n NOW() as database_read_time\n\nFROM model_weights as w\n\nJOIN users\n ON users.token = w.creator_user_token\n\nLEFT OUTER JOIN model_weights_extension_tts_details as extension_tts\n ON extension_tts.model_weights_token = w.token\nLEFT OUTER JOIN model_weights_extension_voice_conversion_details as extension_vc\n ON extension_vc.model_weights_token = w.token\nLEFT OUTER JOIN entity_stats\n ON entity_stats.entity_type = \"model_weights\"\n AND entity_stats.entity_token = w.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = w.maybe_cover_image_media_file_token\n\nWHERE\n w.id > ?\nORDER BY id ASC\nLIMIT ?\n ", "describe": { "columns": [ { @@ -252,6 +252,16 @@ "char_set": 63, "max_size": 19 } + }, + { + "ordinal": 25, + "name": "database_read_time", + "type_info": { + "type": "Datetime", + "flags": "NOT_NULL | BINARY", + "char_set": 63, + "max_size": 19 + } } ], "parameters": { @@ -282,8 +292,9 @@ false, false, true, - true + true, + false ] }, - "hash": "6040227c139f6e2972734515b0a904d2a7b04bbf1a419677fc19287a0757ae21" + "hash": "64d5f1637d1106b5f5a7e8683621e1b718aca097437568e0957416586eba922d" } diff --git a/.sqlx/query-a3066dd68c77b5381104a754b2774506990f659c9a0ed2de1fcb8e6fd953e726.json b/.sqlx/query-a3066dd68c77b5381104a754b2774506990f659c9a0ed2de1fcb8e6fd953e726.json deleted file mode 100644 index 590a8acb0c..0000000000 --- a/.sqlx/query-a3066dd68c77b5381104a754b2774506990f659c9a0ed2de1fcb8e6fd953e726.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "MySQL", - "query": "\nINSERT INTO users (\n token,\n username,\n display_name,\n email_address,\n email_gravatar_hash,\n profile_markdown,\n profile_rendered_html,\n user_role_slug,\n password_hash,\n ip_address_creation,\n ip_address_last_login,\n ip_address_last_update,\n can_access_studio\n)\nVALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ?)\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 13 - }, - "nullable": [] - }, - "hash": "a3066dd68c77b5381104a754b2774506990f659c9a0ed2de1fcb8e6fd953e726" -} diff --git a/crates/cli/production/elasticsearch-cli/src/plans/create_all_model_weight_documents.rs b/crates/cli/production/elasticsearch-cli/src/plans/create_all_model_weight_documents.rs index fbe3a10418..ed7d84e115 100644 --- a/crates/cli/production/elasticsearch-cli/src/plans/create_all_model_weight_documents.rs +++ b/crates/cli/production/elasticsearch-cli/src/plans/create_all_model_weight_documents.rs @@ -101,6 +101,7 @@ async fn create_document_from_record(elasticsearch: &Elasticsearch, record: Mode user_deleted_at: record.user_deleted_at, mod_deleted_at: record.mod_deleted_at, + database_read_time: record.database_read_time, is_deleted, }; diff --git a/crates/cli/production/elasticsearch-cli/src/plans/media_files/create_dimensional_media_file_documents.rs b/crates/cli/production/elasticsearch-cli/src/plans/media_files/create_dimensional_media_file_documents.rs index 474daf6029..c0b1644410 100644 --- a/crates/cli/production/elasticsearch-cli/src/plans/media_files/create_dimensional_media_file_documents.rs +++ b/crates/cli/production/elasticsearch-cli/src/plans/media_files/create_dimensional_media_file_documents.rs @@ -135,6 +135,8 @@ async fn create_document_from_record(elasticsearch: &Elasticsearch, record: Medi user_deleted_at: record.user_deleted_at, mod_deleted_at: record.mod_deleted_at, + database_read_time: record.database_read_time, + is_deleted, }; diff --git a/crates/lib/mysql_queries/src/queries/database_time/get_database_time.rs b/crates/lib/mysql_queries/src/queries/database_time/get_database_time.rs index 57a2817bbe..6679d85538 100644 --- a/crates/lib/mysql_queries/src/queries/database_time/get_database_time.rs +++ b/crates/lib/mysql_queries/src/queries/database_time/get_database_time.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use chrono::{DateTime, Utc}; +use chrono::{DateTime, NaiveDateTime, Utc}; use sqlx::MySqlPool; use errors::AnyhowResult; @@ -8,22 +8,28 @@ pub struct GetDatabaseTimeResult { pub database_time: DateTime, } +struct InternalGetDatabaseTimeResult { + database_time: NaiveDateTime, +} + /// Query the DB for its current time pub async fn get_database_time( pool: &MySqlPool, ) -> AnyhowResult { let maybe_record = sqlx::query_as!( - GetDatabaseTimeResult, + InternalGetDatabaseTimeResult, r#" -SELECT NOW() as `database_time: DateTime` +SELECT NOW() as database_time "#, ) .fetch_one(pool) .await; match maybe_record { - Ok(record) => Ok(record), + Ok(record) => Ok(GetDatabaseTimeResult { + database_time: record.database_time.and_utc(), + }), Err(sqlx::Error::RowNotFound) => Err(anyhow!("query didn't return anything")), Err(ref err) => Err(anyhow!("database query error: {:?}", err)), } diff --git a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_elastic_search_backfill_using_cursor.rs b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_elastic_search_backfill_using_cursor.rs index a492445ec0..a358254b75 100644 --- a/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_elastic_search_backfill_using_cursor.rs +++ b/crates/lib/mysql_queries/src/queries/media_files/list/list_media_files_for_elastic_search_backfill_using_cursor.rs @@ -1,7 +1,7 @@ use std::collections::HashSet; use anyhow::anyhow; -use chrono::{DateTime, Utc}; +use chrono::{DateTime, NaiveDateTime, Utc}; use log::{info, warn}; use sqlx::{Execute, FromRow, MySql, MySqlPool, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; @@ -199,7 +199,7 @@ pub async fn list_media_files_for_elastic_search_backfill_using_cursor( updated_at: record.updated_at, user_deleted_at: record.user_deleted_at, mod_deleted_at: record.mod_deleted_at, - database_read_time: record.database_read_time, + database_read_time: record.database_read_time.and_utc(), } }) .collect::>()) @@ -440,7 +440,7 @@ struct RawRecord { pub user_deleted_at: Option>, pub mod_deleted_at: Option>, - pub database_read_time: DateTime, + pub database_read_time: NaiveDateTime, } impl FromRow<'_, MySqlRow> for RawRecord { diff --git a/crates/lib/mysql_queries/src/queries/model_weights/batch_get/batch_get_model_weights_for_elastic_search_backfill.rs b/crates/lib/mysql_queries/src/queries/model_weights/batch_get/batch_get_model_weights_for_elastic_search_backfill.rs index 499aac6a75..235ea2f0d6 100644 --- a/crates/lib/mysql_queries/src/queries/model_weights/batch_get/batch_get_model_weights_for_elastic_search_backfill.rs +++ b/crates/lib/mysql_queries/src/queries/model_weights/batch_get/batch_get_model_weights_for_elastic_search_backfill.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use chrono::{DateTime, Utc}; +use chrono::{DateTime, NaiveDateTime, Utc}; use log::warn; use sqlx::{Executor, FromRow, MySql, QueryBuilder, Row}; use sqlx::mysql::MySqlRow; @@ -113,7 +113,7 @@ pub async fn batch_get_model_weights_for_elastic_search_backfill<'e, 'c, E>( updated_at: model.updated_at, user_deleted_at: model.user_deleted_at, mod_deleted_at: model.mod_deleted_at, - database_read_time: model.database_read_time, + database_read_time: model.database_read_time.and_utc(), } }) .collect::>()) @@ -248,7 +248,7 @@ struct RawRecord { pub user_deleted_at: Option>, pub mod_deleted_at: Option>, - pub database_read_time: DateTime, + pub database_read_time: NaiveDateTime, } // NB(bt,2023-12-05): There's an issue with type hinting in the `as` clauses with QueryBuilder (or diff --git a/crates/lib/mysql_queries/src/queries/model_weights/list/list_model_weights_for_elastic_search_backfill_using_cursor.rs b/crates/lib/mysql_queries/src/queries/model_weights/list/list_model_weights_for_elastic_search_backfill_using_cursor.rs index 9255072561..fec3ee71e2 100644 --- a/crates/lib/mysql_queries/src/queries/model_weights/list/list_model_weights_for_elastic_search_backfill_using_cursor.rs +++ b/crates/lib/mysql_queries/src/queries/model_weights/list/list_model_weights_for_elastic_search_backfill_using_cursor.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use chrono::{DateTime, Utc}; +use chrono::{DateTime, NaiveDateTime, Utc}; use log::warn; use sqlx::{MySql, MySqlPool}; use sqlx::pool::PoolConnection; @@ -55,6 +55,8 @@ pub struct ModelWeightForElasticsearchRecord { pub user_deleted_at: Option>, pub mod_deleted_at: Option>, + + pub database_read_time: DateTime, } pub async fn list_model_weights_for_elastic_search_backfill_using_cursor( @@ -105,6 +107,7 @@ pub async fn list_model_weights_for_elastic_search_backfill_using_cursor( updated_at: model.updated_at, user_deleted_at: model.user_deleted_at, mod_deleted_at: model.mod_deleted_at, + database_read_time: model.database_read_time.and_utc(), } }) .collect::>()) @@ -152,7 +155,9 @@ SELECT w.created_at, w.updated_at, w.user_deleted_at, - w.mod_deleted_at + w.mod_deleted_at, + + NOW() as database_read_time FROM model_weights as w @@ -222,4 +227,6 @@ struct RawRecord { pub user_deleted_at: Option>, pub mod_deleted_at: Option>, + + pub database_read_time: NaiveDateTime, }