diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-06-05 12:35:21 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-06-05 12:35:21 +0000 |
commit | 40dc82f8628f597548a39a31bddf2aaccc7fc38c (patch) | |
tree | 2baf01a5a796d4eff948546178fe3608006cb86c /db | |
parent | 049519e718d84f06af1510d2236a0819372fea56 (diff) | |
parent | 8f1f73d4e3ca82e3d449e478606f133d19ead7b1 (diff) | |
download | gitlab-ce-40dc82f8628f597548a39a31bddf2aaccc7fc38c.tar.gz |
Merge branch 'add-background-migrations-for-not-archived-traces' into 'master'
Add background migrations to archive legacy job traces
Closes #46642
See merge request gitlab-org/gitlab-ce!19194
Diffstat (limited to 'db')
-rw-r--r-- | db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb | 35 | ||||
-rw-r--r-- | db/schema.rb | 2 |
2 files changed, 36 insertions, 1 deletions
diff --git a/db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb b/db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb new file mode 100644 index 00000000000..965cd3a8714 --- /dev/null +++ b/db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb @@ -0,0 +1,35 @@ +class ScheduleToArchiveLegacyTraces < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + BATCH_SIZE = 5000 + BACKGROUND_MIGRATION_CLASS = 'ArchiveLegacyTraces' + + disable_ddl_transaction! + + class Build < ActiveRecord::Base + include EachBatch + self.table_name = 'ci_builds' + self.inheritance_column = :_type_disabled # Disable STI + + scope :type_build, -> { where(type: 'Ci::Build') } + + scope :finished, -> { where(status: [:success, :failed, :canceled]) } + + scope :without_archived_trace, -> do + where('NOT EXISTS (SELECT 1 FROM ci_job_artifacts WHERE ci_builds.id = ci_job_artifacts.job_id AND ci_job_artifacts.file_type = 3)') + end + end + + def up + queue_background_migration_jobs_by_range_at_intervals( + ::ScheduleToArchiveLegacyTraces::Build.type_build.finished.without_archived_trace, + BACKGROUND_MIGRATION_CLASS, + 5.minutes, + batch_size: BATCH_SIZE) + end + + def down + # noop + end +end diff --git a/db/schema.rb b/db/schema.rb index 0d6b44d1b92..a6b0706b02a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20180529093006) do +ActiveRecord::Schema.define(version: 20180529152628) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" |