Files
sure/db/migrate/20250522201031_stronger_unique_index_on_security.rb
2025-05-22 16:11:22 -04:00

14 lines
553 B
Ruby

class StrongerUniqueIndexOnSecurity < ActiveRecord::Migration[7.2]
def change
remove_index :securities, [ :ticker, :exchange_operating_mic ], unique: true
# Matches our ActiveRecord validation:
# - uppercase ticker
# - either exchange_operating_mic or empty string (unique index doesn't work with NULL values)
add_index :securities,
"UPPER(ticker), COALESCE(UPPER(exchange_operating_mic), '')",
unique: true,
name: "index_securities_on_ticker_and_exchange_operating_mic_unique"
end
end