1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 13:19:39 +02:00
Maybe/db/migrate/20240624161153_migrate_entryables.rb
Zach Gollwitzer c3314e62d1
Account::Entry Delegated Type (namespace updates part 7) (#923)
* Initial entryable models

* Update transfer and tests

* Update transaction controllers and tests

* Update sync process to use new entries model

* Get dashboard working again

* Update transfers, imports, and accounts to use Account::Entry

* Update system tests

* Consolidate transaction management into entries controller

* Add permitted partial key helper

* Move account transactions list to entries controller

* Delegate transaction entries search

* Move transfer relation to entry

* Update bulk transaction management flows to use entries

* Remove test code

* Test fix attempt

* Update demo data script

* Consolidate remaining transaction partials to entries

* Consolidate valuations controller to entries controller

* Lint fix

* Remove unused files, additional cleanup

* Add back valuation creation

* Make migrations fully reversible

* Stale routes cleanup

* Migrations reversible fix

* Move types to entryable concern

* Fix search when no entries found

* Remove more unused code
2024-07-01 10:49:43 -04:00

28 lines
1.1 KiB
Ruby

class MigrateEntryables < ActiveRecord::Migration[7.2]
def change
reversible do |dir|
dir.up do
# Migrate Account::Transaction data
execute <<-SQL.squish
INSERT INTO account_entries (name, date, amount, currency, account_id, entryable_type, entryable_id, created_at, updated_at)
SELECT name, date, amount, currency, account_id, 'Account::Transaction', id, created_at, updated_at
FROM account_transactions
SQL
# Migrate Account::Valuation data
execute <<-SQL.squish
INSERT INTO account_entries (name, date, amount, currency, account_id, entryable_type, entryable_id, created_at, updated_at)
SELECT 'Manual valuation', date, value, currency, account_id, 'Account::Valuation', id, created_at, updated_at
FROM account_valuations
SQL
end
dir.down do
# Delete the entries from account_entries
execute <<-SQL.squish
DELETE FROM account_entries WHERE entryable_type IN ('Account::Transaction', 'Account::Valuation')
SQL
end
end
end
end