diff options
author | Shinya Maeda <shinya@gitlab.com> | 2018-06-03 15:04:47 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-06-04 14:14:20 +0900 |
commit | bcd664f53a4009bc752fbc47e1c4d6f76c0b8cc2 (patch) | |
tree | bf5371ebe3e97e68cb0a8b84680bf32657cbfc12 /db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb | |
parent | 0d00d02e842a0c4b22d213e00143a08d97597000 (diff) | |
download | gitlab-ce-bcd664f53a4009bc752fbc47e1c4d6f76c0b8cc2.tar.gz |
Fix specs. Rename migration file name which was conflicted with background migration's.
Diffstat (limited to 'db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb')
-rw-r--r-- | db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb | 33 |
1 files changed, 33 insertions, 0 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..ea782e1596b --- /dev/null +++ b/db/post_migrate/20180529152628_schedule_to_archive_legacy_traces.rb @@ -0,0 +1,33 @@ +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 :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.finished.without_archived_trace, + BACKGROUND_MIGRATION_CLASS, + 5.minutes, + batch_size: BATCH_SIZE) + end + + def down + # noop + end +end |