Skip to content

Add service_desk_enabled to service_desk_settings

What does this MR do and why?

Add service_desk_enabled column to service_desk_settings table

Implements #412669 (closed)

Contributes to #36126

The new column is needed to migrate from projects.service_desk_enabled to service_desk_settings.service_desk_enabled.


There are two indexes at the moment related to projects.service_desk_enabled:

CREATE INDEX index_projects_on_id_service_desk_enabled ON projects USING btree (id) WHERE (service_desk_enabled = true);

CREATE INDEX index_service_desk_enabled_projects_on_id_creator_id_created_at ON projects USING btree (id, creator_id, created_at) WHERE (service_desk_enabled = true);

I think we'll review them and add similar indexes in one of the next steps (most likely on #412673), when it would be clear what queries we'll have.

Migration log

db:migrate

→ be rails db:migrate
main: == [advisory_lock_connection] object_id: 279040, pg_backend_pid: 90495
main: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: migrating =======
main: -- add_column(:service_desk_settings, :service_desk_enabled, :boolean, {:null=>false, :default=>true})
main:    -> 0.0039s
main: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: migrated (0.0073s)

main: == [advisory_lock_connection] object_id: 279040, pg_backend_pid: 90495
ci: == [advisory_lock_connection] object_id: 279280, pg_backend_pid: 90500
ci: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: migrating =======
ci: -- add_column(:service_desk_settings, :service_desk_enabled, :boolean, {:null=>false, :default=>true})
ci:    -> 0.0028s
ci: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: migrated (0.0102s)

ci: == [advisory_lock_connection] object_id: 279280, pg_backend_pid: 90500

db:rollback

→ be rails db:rollback:main
main: == [advisory_lock_connection] object_id: 278860, pg_backend_pid: 91152
main: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: reverting =======
main: -- remove_column(:service_desk_settings, :service_desk_enabled, :boolean, {:null=>false, :default=>true})
main:    -> 0.0031s
main: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: reverted (0.0094s)

main: == [advisory_lock_connection] object_id: 278860, pg_backend_pid: 91152
→ be rails db:rollback:ci
ci: == [advisory_lock_connection] object_id: 278800, pg_backend_pid: 91596
ci: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: reverting =======
ci: -- remove_column(:service_desk_settings, :service_desk_enabled, :boolean, {:null=>false, :default=>true})
ci:    -> 0.0019s
ci: == 20230525064706 AddServiceDeskEnabledToServiceDeskSettings: reverted (0.0109s)

ci: == [advisory_lock_connection] object_id: 278800, pg_backend_pid: 91596

MR acceptance checklist

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

Merge request reports