Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tasks/gitlab/db.rake')
-rw-r--r--lib/tasks/gitlab/db.rake36
1 files changed, 28 insertions, 8 deletions
diff --git a/lib/tasks/gitlab/db.rake b/lib/tasks/gitlab/db.rake
index f0264456201..9c92aa5eb28 100644
--- a/lib/tasks/gitlab/db.rake
+++ b/lib/tasks/gitlab/db.rake
@@ -407,7 +407,12 @@ namespace :gitlab do
Rails.application.eager_load!
tables = Gitlab::Database.database_base_models.flat_map { |_, m| m.connection.tables }
- classes = tables.index_with { [] }
+
+ views = Gitlab::Database.database_base_models.flat_map { |_, m| m.connection.views }
+
+ sources = tables + views
+
+ classes = sources.index_with { [] }
Gitlab::Database.database_base_models.each do |_, model_class|
model_class
@@ -421,12 +426,13 @@ namespace :gitlab do
version = Gem::Version.new(File.read('VERSION'))
milestone = version.release.segments[0..1].join('.')
- tables.each do |table_name|
- file = File.join(DB_DOCS_PATH, "#{table_name}.yml")
+ sources.each do |source_name|
+ file = dictionary_file_path(source_name, views)
+ key_name = "#{data_source_type(source_name, views)}_name"
table_metadata = {
- 'table_name' => table_name,
- 'classes' => classes[table_name]&.sort&.uniq,
+ key_name => source_name,
+ 'classes' => classes[source_name]&.sort&.uniq,
'feature_categories' => [],
'description' => nil,
'introduced_by_url' => nil,
@@ -438,12 +444,12 @@ namespace :gitlab do
existing_metadata = YAML.safe_load(File.read(file))
- if existing_metadata['table_name'] != table_metadata['table_name']
- existing_metadata['table_name'] = table_metadata['table_name']
+ if existing_metadata[key_name] != table_metadata[key_name]
+ existing_metadata[key_name] = table_metadata[key_name]
outdated = true
end
- if existing_metadata['classes'].difference(table_metadata['classes']).any?
+ if existing_metadata['classes'].sort != table_metadata['classes'].sort
existing_metadata['classes'] = table_metadata['classes']
outdated = true
end
@@ -455,6 +461,20 @@ namespace :gitlab do
end
end
+ private
+
+ def data_source_type(source_name, views)
+ return 'view' if views.include?(source_name)
+
+ 'table'
+ end
+
+ def dictionary_file_path(source_name, views)
+ sub_directory = views.include?(source_name) ? 'views' : ''
+
+ File.join(DB_DOCS_PATH, sub_directory, "#{source_name}.yml")
+ end
+
# Temporary disable this, see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85760#note_998452069
# Rake::Task['db:migrate'].enhance do
# Rake::Task['gitlab:db:dictionary:generate'].invoke if Rails.env.development?