frankfurter/db/migrate/019_add_dates_to_currency_coverages.rb
BadMark d0a43e357a
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / publish (push) Has been cancelled
CI/CD Pipeline / release (push) Has been cancelled
up
2026-05-21 01:38:14 -06:00

28 lines
835 B
Ruby

# frozen_string_literal: true
Sequel.migration do
up do
add_column :currency_coverages, :start_date, :date
add_column :currency_coverages, :end_date, :date
# Backfill from rates
run <<~SQL
UPDATE currency_coverages
SET start_date = (
SELECT MIN(date) FROM rates
WHERE rates.provider = currency_coverages.provider_key
AND (rates.quote = currency_coverages.iso_code OR rates.base = currency_coverages.iso_code)
),
end_date = (
SELECT MAX(date) FROM rates
WHERE rates.provider = currency_coverages.provider_key
AND (rates.quote = currency_coverages.iso_code OR rates.base = currency_coverages.iso_code)
)
SQL
end
down do
drop_column :currency_coverages, :start_date
drop_column :currency_coverages, :end_date
end
end