Skip to content

Add pages unique domain database columns

Kassio Borges requested to merge kassio/add-pages-unique-domain-columns into master

What does this MR do and why?

Add the columns required to the pages unique domain.

Related to: #388178 (closed)

This was extracted from !109011 (merged) to deliver a more iteractive solution 👣

database migration

rails db:migrate:up:main VERSION='20230116143310'
main: == 20230116143310 AddPagesUniqueDomainColumnsToProjectSettings: migrating =====
main: -- add_column(:project_settings, :pages_unique_domain_enabled, :boolean, {:default=>false, :null=>false})
main:    -> 0.0042s
main: -- add_column(:project_settings, :pages_unique_domain, :text)
main:    -> 0.0005s
main: == 20230116143310 AddPagesUniqueDomainColumnsToProjectSettings: migrated (0.0062s)
rails db:migrate:up:main VERSION='20230116143311'
main: == 20230116143311 AddProjectSettingsPagesUniqueDomainLimit: migrating =========
main: -- transaction_open?()
main:    -> 0.0000s
main: -- current_schema()
main:    -> 0.0022s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE project_settings\nADD CONSTRAINT check_1a30456322\nCHECK ( char_length(pages_unique_domain) <= 63 )\nNOT VALID;\n")
main:    -> 0.0062s
main: -- current_schema()
main:    -> 0.0064s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0032s
main: -- execute("ALTER TABLE project_settings VALIDATE CONSTRAINT check_1a30456322;")
main:    -> 0.0012s
main: -- execute("RESET statement_timeout")
main:    -> 0.0015s
main: == 20230116143311 AddProjectSettingsPagesUniqueDomainLimit: migrated (0.4506s)
rails db:migrate:up:main VERSION='20230116143312'
main: == 20230116143312 AddProjectSettingsPagesUniqueDomainUniqueIndex: migrating ===
main: -- transaction_open?()
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.0930s
main: -- index_exists?(:project_settings, :pages_unique_domain, {:unique=>true, :where=>"pages_unique_domain IS NOT NULL", :name=>"unique_index_for_project_pages_unique_domain", :algorithm=>:concurrently})
main:    -> 0.0028s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0002s
main: -- add_index(:project_settings, :pages_unique_domain, {:unique=>true, :where=>"pages_unique_domain IS NOT NULL", :name=>"unique_index_for_project_pages_unique_domain", :algorithm=>:concurrently})
main:    -> 0.0021s
main: -- execute("RESET statement_timeout")
main:    -> 0.0002s
main: == 20230116143312 AddProjectSettingsPagesUniqueDomainUniqueIndex: migrated (0.1092s)

rails db:migrate:down:main VERSION='20230116143310'
main: == 20230116143310 AddPagesUniqueDomainColumnsToProjectSettings: reverting =====
main: -- remove_column(:project_settings, :pages_unique_domain_enabled, :boolean)
main:    -> 0.0019s
main: -- remove_column(:project_settings, :pages_unique_domain, :text)
main:    -> 0.0005s
main: == 20230116143310 AddPagesUniqueDomainColumnsToProjectSettings: reverted (0.0037s)
rails db:migrate:down:main VERSION='20230116143311'
main: == 20230116143311 AddProjectSettingsPagesUniqueDomainLimit: reverting =========
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("            ALTER TABLE project_settings\n            DROP CONSTRAINT IF EXISTS check_1a30456322\n")
main:    -> 0.0007s
main: == 20230116143311 AddProjectSettingsPagesUniqueDomainLimit: reverted (0.0144s)
rails db:migrate:down:main VERSION='20230116143312'
main: == 20230116143312 AddProjectSettingsPagesUniqueDomainUniqueIndex: reverting ===
main: -- transaction_open?()
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.1414s
main: -- index_exists?(:project_settings, :pages_unique_domain, {:unique=>true, :name=>"unique_index_for_project_pages_unique_domain", :algorithm=>:concurrently})
main:    -> 0.0032s
main: == 20230116143312 AddProjectSettingsPagesUniqueDomainUniqueIndex: reverted (0.1511s)

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Kassio Borges

Merge request reports