diff --git a/migration/src/lib.rs b/migration/src/lib.rs index 211501cd..a67cb9ae 100644 --- a/migration/src/lib.rs +++ b/migration/src/lib.rs @@ -45,6 +45,7 @@ mod m20240320_120101_add_mpl_core_info_items; mod m20240520_120101_add_mpl_core_external_plugins_columns; mod m20240718_161232_change_supply_columns_to_numeric; mod m20241119_060310_add_token_inscription_enum_variant; +mod m20250213_053451_add_idx_token_accounts_owner; pub mod model; @@ -99,6 +100,7 @@ impl MigratorTrait for Migrator { Box::new(m20240520_120101_add_mpl_core_external_plugins_columns::Migration), Box::new(m20240718_161232_change_supply_columns_to_numeric::Migration), Box::new(m20241119_060310_add_token_inscription_enum_variant::Migration), + Box::new(m20250213_053451_add_idx_token_accounts_owner::Migration), ] } } diff --git a/migration/src/m20250213_053451_add_idx_token_accounts_owner.rs b/migration/src/m20250213_053451_add_idx_token_accounts_owner.rs new file mode 100644 index 00000000..e43e4189 --- /dev/null +++ b/migration/src/m20250213_053451_add_idx_token_accounts_owner.rs @@ -0,0 +1,35 @@ +use super::model::table::TokenAccounts; +use sea_orm::{ConnectionTrait, DatabaseBackend, Statement}; +use sea_orm_migration::prelude::*; + +#[derive(DeriveMigrationName)] +pub struct Migration; + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + let conn = manager.get_connection(); + + conn.execute(Statement::from_string( + DatabaseBackend::Postgres, + "CREATE INDEX CONCURRENTLY IF NOT EXISTS token_accounts_owner_idx ON token_accounts (owner);" + .to_string(), + )) + .await?; + + Ok(()) + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager + .drop_index( + Index::drop() + .name("token_accounts_owner_idx") + .table(TokenAccounts::Table) + .to_owned(), + ) + .await?; + + Ok(()) + } +}