Skip to content
代码片段 群组 项目
未验证 提交 ab781509 编辑于 作者: Peter Leitzen's avatar Peter Leitzen 提交者: GitLab
浏览文件

Merge branch 'speed-up-regenerate-schema' into 'master'

Speed up ./scripts/regenerate-schema

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145159



Merged-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Approved-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Reviewed-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Co-authored-by: default avatarDmitry Gruzd <dgruzd@gitlab.com>
No related branches found
No related tags found
无相关合并请求
......@@ -2,6 +2,8 @@
# frozen_string_literal: true
ENV['RAILS_ENV'] = 'test'
require 'optparse'
require 'open3'
require 'fileutils'
......@@ -49,6 +51,7 @@ class SchemaRegenerator
#
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135085#note_1628210334 for more info.
#
load_tasks
drop_db
checkout_ref
checkout_clean_schema
......@@ -67,6 +70,11 @@ class SchemaRegenerator
private
def load_tasks
require_relative '../config/environment'
Gitlab::Application.load_tasks
end
##
# Git checkout +CI_COMMIT_SHA+.
#
......@@ -181,25 +189,25 @@ class SchemaRegenerator
##
# Run rake task to drop the database.
def drop_db
run %q(bin/rails db:drop RAILS_ENV=test)
run_rake_task 'db:drop'
end
##
# Run rake task to setup the database.
def setup_db
run %q(bin/rails db:setup RAILS_ENV=test)
run_rake_task 'db:setup'
end
##
# Run rake task to run migrations.
def migrate
run %q(bin/rails db:migrate RAILS_ENV=test)
run_rake_task 'db:migrate'
end
##
# Run rake task to dump schema.
def dump_schema
run %q(bin/rails db:schema:dump RAILS_ENV=test)
run_rake_task 'db:schema:dump'
end
##
......@@ -226,6 +234,15 @@ class SchemaRegenerator
stdout_str
end
def run_rake_task(*tasks, env: {})
Array.wrap(tasks).each do |task|
env.each { |k, v| ENV[k.to_s] = v.to_s }
puts "\e[32m$ bin/rails #{task} RAILS_ENV=test #{env.map { |m| m.join('=') }.join(' ')}\e[37m"
Rake::Task[task].invoke
end
end
##
# Return the base commit between source and target branch.
def merge_base
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册