diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-12-11 20:04:53 -0600 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-12-11 20:04:53 -0600 |
commit | 9a435494c2efdd2ca8fc7f5fa3dbb81bf88633a1 (patch) | |
tree | 376b3fa1570b7d0abf85e5580cc48eecdc407129 /db/migrate | |
parent | 3dc62460b00acea03d6010b08677031332399d2c (diff) |
move normalized text into own table
Diffstat (limited to 'db/migrate')
3 files changed, 37 insertions, 2 deletions
diff --git a/db/migrate/20191118084127_migrate_to_new_search_impl.rb b/db/migrate/20191118084127_migrate_to_new_search_impl.rb index b068443ca..52a50af36 100644 --- a/db/migrate/20191118084127_migrate_to_new_search_impl.rb +++ b/db/migrate/20191118084127_migrate_to_new_search_impl.rb @@ -22,7 +22,6 @@ class MigrateToNewSearchImpl < ActiveRecord::Migration[5.2] end def down - #raise ActiveRecord::IrreversibleMigration - true + raise ActiveRecord::IrreversibleMigration end end diff --git a/db/migrate/20191211235208_create_normalized_statuses.rb b/db/migrate/20191211235208_create_normalized_statuses.rb new file mode 100644 index 000000000..9baaa3f62 --- /dev/null +++ b/db/migrate/20191211235208_create_normalized_statuses.rb @@ -0,0 +1,23 @@ +class CreateNormalizedStatuses < ActiveRecord::Migration[5.2] + def up + create_table :normalized_statuses do |t| + t.references :status, foreign_key: true + t.text :text + end + + safety_assured do + remove_index :statuses, name: 'index_statuses_on_normalized_text_trgm' + execute 'INSERT INTO normalized_statuses (status_id, text) SELECT id, normalized_text FROM statuses' + remove_column :statuses, :normalized_text + end + end + + def down + safety_assured do + execute 'UPDATE statuses SET normalized_text = s.text FROM (SELECT status_id, text FROM normalized_statuses) AS s WHERE statuses.id = s.id' + remove_index :normalized_statuses, name: 'index_statuses_on_normalized_text_trgm' + drop_table :normalized_statuses + add_column :statuses, :normalized_text, :text, null: false, default: '' + end + end +end diff --git a/db/migrate/20191212002705_add_index_to_normalized_statuses.rb b/db/migrate/20191212002705_add_index_to_normalized_statuses.rb new file mode 100644 index 000000000..7a9dce39a --- /dev/null +++ b/db/migrate/20191212002705_add_index_to_normalized_statuses.rb @@ -0,0 +1,13 @@ +class AddIndexToNormalizedStatuses < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + + def up + safety_assured do + execute 'CREATE INDEX CONCURRENTLY IF NOT EXISTS index_statuses_on_normalized_text_trgm ON normalized_statuses USING GIN (text gin_trgm_ops)' + end + end + + def down + remove_index :normalized_statuses, name: 'index_statuses_on_normalized_text_trgm' + end +end |