diff options
author | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-06-28 20:00:52 +0200 |
---|---|---|
committer | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-07-09 18:09:45 +0200 |
commit | 82e6ed310b1bb5e7faf44742defaf65b74926195 (patch) | |
tree | b5b0e7fc1dbc539e4c36064a4e3e9da0e0e6a3f5 /db | |
parent | f138acb9866fa86f16e1db14c23e48c2e9f2b38b (diff) | |
download | gitlab-ce-82e6ed310b1bb5e7faf44742defaf65b74926195.tar.gz |
Fix incorrect namespaces & route for user-routes
This fixes the `Namespace#name` and `Route#name` for all user
namespaces and their personal projects in case they don't match the
user name anymore.
More info info in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23272
Diffstat (limited to 'db')
-rw-r--r-- | db/post_migrate/20190628191740_schedule_fixing_names_of_user_namespaces.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/db/post_migrate/20190628191740_schedule_fixing_names_of_user_namespaces.rb b/db/post_migrate/20190628191740_schedule_fixing_names_of_user_namespaces.rb new file mode 100644 index 00000000000..8fa7068b957 --- /dev/null +++ b/db/post_migrate/20190628191740_schedule_fixing_names_of_user_namespaces.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +# See http://doc.gitlab.com/ce/development/migration_style_guide.html +# for more information on how to write migrations for GitLab. + +class ScheduleFixingNamesOfUserNamespaces < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + class Namespace < ActiveRecord::Base + include ::EachBatch + + self.table_name = 'namespaces' + + scope :user_namespaces, -> { where(type: nil) } + end + + class Route < ActiveRecord::Base + include ::EachBatch + + self.table_name = 'routes' + + scope :project_routes, -> { where(source_type: 'Project') } + end + + disable_ddl_transaction! + + def up + queue_background_migration_jobs_by_range_at_intervals( + ScheduleFixingNamesOfUserNamespaces::Namespace.user_namespaces, + 'FixUserNamespaceNames', + 60.seconds, + batch_size: 5000 + ) + + queue_background_migration_jobs_by_range_at_intervals( + ScheduleFixingNamesOfUserNamespaces::Route.project_routes, + 'FixUserProjectRouteNames', + 60.seconds, + batch_size: 5000 + ) + end + + def down + # no-op + end +end |