diff --git a/db/migrate/20221206090120_modify_log_domains_object_changes_data_type.rb b/db/migrate/20221206090120_modify_log_domains_object_changes_data_type.rb index e7308ae59..1187ab9f8 100644 --- a/db/migrate/20221206090120_modify_log_domains_object_changes_data_type.rb +++ b/db/migrate/20221206090120_modify_log_domains_object_changes_data_type.rb @@ -1,6 +1,6 @@ class ModifyLogDomainsObjectChangesDataType < ActiveRecord::Migration[6.1] def up - add_column :log_domains, :object_changes_jsonb, :jsonb, default: '{}' + add_column :log_domains, :object_changes_jsonb, :jsonb # Copy data from old column to the new one Version::DomainVersion.update_all('object_changes_jsonb = object_changes::jsonb') diff --git a/db/migrate/20221206091556_add_indexes_to_log_domains.rb b/db/migrate/20221206091556_add_indexes_to_log_domains.rb index 0dbbf944f..81f147ea5 100644 --- a/db/migrate/20221206091556_add_indexes_to_log_domains.rb +++ b/db/migrate/20221206091556_add_indexes_to_log_domains.rb @@ -2,14 +2,14 @@ class AddIndexesToLogDomains < ActiveRecord::Migration[6.1] disable_ddl_transaction! def up enable_extension 'btree_gin' - add_index :log_domains, :event, algorithm: :concurrently - add_index :log_domains, :object, using: :gin, algorithm: :concurrently - add_index :log_domains, :object_changes, using: :gin, algorithm: :concurrently + add_index :log_domains, :event, algorithm: :concurrently, if_not_exists: true + # add_index :log_domains, :object, using: :gin, algorithm: :concurrently, if_not_exists: true + add_index :log_domains, :object_changes, using: :gin, algorithm: :concurrently, if_not_exists: true end def down remove_index :log_domains, :event - remove_index :log_domains, :object + # remove_index :log_domains, :object remove_index :log_domains, :object_changes end end diff --git a/db/migrate/20221207102831_change_log_domains_object_changes_default_value.rb b/db/migrate/20221207102831_change_log_domains_object_changes_default_value.rb deleted file mode 100644 index 84a3c32cf..000000000 --- a/db/migrate/20221207102831_change_log_domains_object_changes_default_value.rb +++ /dev/null @@ -1,5 +0,0 @@ -class ChangeLogDomainsObjectChangesDefaultValue < ActiveRecord::Migration[6.1] - def change - change_column_default :log_domains, :object_changes, nil - end -end diff --git a/db/migrate/20221214073933_modify_log_domains_object_data_type.rb b/db/migrate/20221214073933_modify_log_domains_object_data_type.rb new file mode 100644 index 000000000..4ed9246fe --- /dev/null +++ b/db/migrate/20221214073933_modify_log_domains_object_data_type.rb @@ -0,0 +1,21 @@ +class ModifyLogDomainsObjectDataType < ActiveRecord::Migration[6.1] + def up + add_column :log_domains, :object_jsonb, :jsonb + + # Copy data from old column to the new one + Version::DomainVersion.update_all('object_jsonb = object::jsonb') + + # Rename columns instead of modify their type, it's way faster + safety_assured do + rename_column :log_domains, :object, :object_json + rename_column :log_domains, :object_jsonb, :object + end + end + + def down + safety_assured do + rename_column :log_domains, :object, :object_jsonb + rename_column :log_domains, :object_json, :object + end + end +end diff --git a/db/migrate/20221214074252_add_index_to_log_domain_object.rb b/db/migrate/20221214074252_add_index_to_log_domain_object.rb new file mode 100644 index 000000000..e79cc471a --- /dev/null +++ b/db/migrate/20221214074252_add_index_to_log_domain_object.rb @@ -0,0 +1,11 @@ +class AddIndexToLogDomainObject < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + def up + enable_extension 'btree_gin' + add_index :log_domains, :object, using: :gin, algorithm: :concurrently, if_not_exists: true + end + + def down + remove_index :log_domains, :object + end +end diff --git a/db/structure.sql b/db/structure.sql index fd26dd07a..f7d6cbc46 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1670,13 +1670,14 @@ CREATE TABLE public.log_domains ( item_id integer NOT NULL, event character varying NOT NULL, whodunnit character varying, - object jsonb, + object_json jsonb, object_changes_json json, created_at timestamp without time zone, session character varying, children jsonb, uuid character varying, - object_changes jsonb + object_changes jsonb, + object jsonb ); @@ -5466,6 +5467,8 @@ INSERT INTO "schema_migrations" (version) VALUES ('20221206075912'), ('20221206090120'), ('20221206091556'), -('20221207102831'); +('20221207102831'), +('20221214073933'), +('20221214074252');