diff --git a/priv/repo/migrations/20260304234205_increase_timescaledb_decompression_limit.exs b/priv/repo/migrations/20260304234205_increase_timescaledb_decompression_limit.exs index 306262f3..fed40e8e 100644 --- a/priv/repo/migrations/20260304234205_increase_timescaledb_decompression_limit.exs +++ b/priv/repo/migrations/20260304234205_increase_timescaledb_decompression_limit.exs @@ -5,16 +5,23 @@ defmodule Towerops.Repo.Migrations.IncreaseTimescaledbDecompressionLimit do # Increase TimescaleDB tuple decompression limit to unlimited (0) # This is needed for large interface sync operations during device discovery # that can touch 100k+ compressed tuples in a single transaction - execute "ALTER DATABASE #{db_name()} SET timescaledb.max_tuples_decompressed_per_dml_transaction = 0" + # + # Use current_database() to get the actual database name at runtime + execute """ + DO $$ + BEGIN + EXECUTE 'ALTER DATABASE ' || current_database() || ' SET timescaledb.max_tuples_decompressed_per_dml_transaction = 0'; + END $$; + """ end def down do # Restore default limit of 100,000 - execute "ALTER DATABASE #{db_name()} SET timescaledb.max_tuples_decompressed_per_dml_transaction = 100000" - end - - defp db_name do - config = Application.get_env(:towerops, Towerops.Repo) - config[:database] || "towerops_dev" + execute """ + DO $$ + BEGIN + EXECUTE 'ALTER DATABASE ' || current_database() || ' SET timescaledb.max_tuples_decompressed_per_dml_transaction = 100000'; + END $$; + """ end end