diff options
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 |