Add `namespace_details.deleted_at` column
What does this MR do and why?
We're transitioning from the boolean namespace_details.pending_delete
column to the new deleted_at timestamp column. This change improves
clarity, as pending_delete incorrectly suggests future scheduling
rather than an ongoing process.
The deleted_at column will now indicate when the background deletion
process for a group has started. This will also enable us to see when
the group was deleted to help in debugging if the group deletion fails.
References
See !170774 (comment 2182658405)
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Migration output
up
bin/rails db:migrate
main: == [advisory_lock_connection] object_id: 129380, pg_backend_pid: 70223
main: == 20241029063914 AddDeletedAtToNamespaceDetails: migrating ===================
main: -- add_column(:namespace_details, :deleted_at, :datetime_with_timezone)
main: -> 0.0037s
main: == 20241029063914 AddDeletedAtToNamespaceDetails: migrated (0.0072s) ==========
main: == [advisory_lock_connection] object_id: 129380, pg_backend_pid: 70223
ci: == [advisory_lock_connection] object_id: 129700, pg_backend_pid: 70225
ci: == 20241029063914 AddDeletedAtToNamespaceDetails: migrating ===================
ci: -- add_column(:namespace_details, :deleted_at, :datetime_with_timezone)
ci: -> 0.0036s
ci: == 20241029063914 AddDeletedAtToNamespaceDetails: migrated (0.0146s) ==========
ci: == [advisory_lock_connection] object_id: 129700, pg_backend_pid: 70225
down
for v in 20241029063914; do bin/rails db:migrate:down:ci VERSION=$v && bin/rails db:migrate:down:main VERSION=$v; done
ci: == [advisory_lock_connection] object_id: 128940, pg_backend_pid: 74167
ci: == 20241029063914 AddDeletedAtToNamespaceDetails: reverting ===================
ci: -- remove_column(:namespace_details, :deleted_at, :datetime_with_timezone)
ci: -> 0.0021s
ci: == 20241029063914 AddDeletedAtToNamespaceDetails: reverted (0.0162s) ==========
ci: == [advisory_lock_connection] object_id: 128940, pg_backend_pid: 74167
main: == [advisory_lock_connection] object_id: 128940, pg_backend_pid: 74797
main: == 20241029063914 AddDeletedAtToNamespaceDetails: reverting ===================
main: -- remove_column(:namespace_details, :deleted_at, :datetime_with_timezone)
main: -> 0.0023s
main: == 20241029063914 AddDeletedAtToNamespaceDetails: reverted (0.0080s) ==========
main: == [advisory_lock_connection] object_id: 128940, pg_backend_pid: 74797
How to set up and validate locally
Run bin/rails db:migrate.
Related to #501158 (closed)