Previous version used hardcoded 'towerops_dev' which doesn't exist in production. Now uses current_database() to get the actual database name at runtime. This fixes the crash: ERROR 3D000 (invalid_catalog_name) database "towerops_dev" does not exist
27 lines
845 B
Elixir
27 lines
845 B
Elixir
defmodule Towerops.Repo.Migrations.IncreaseTimescaledbDecompressionLimit do
|
|
use Ecto.Migration
|
|
|
|
def up 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
|
|
#
|
|
# 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 """
|
|
DO $$
|
|
BEGIN
|
|
EXECUTE 'ALTER DATABASE ' || current_database() || ' SET timescaledb.max_tuples_decompressed_per_dml_transaction = 100000';
|
|
END $$;
|
|
"""
|
|
end
|
|
end
|