3ef4f74b1a
This adds counters for build artifacts and LFS objects, and moves the preexisting repository_size and commit_count from the projects table into a new project_statistics table. The counters are displayed in the administration area for projects and groups, and also available through the API for admins (on */all) and normal users (on */owned) The statistics are updated through ProjectCacheWorker, which can now do more granular updates with the new :statistics argument.
20 lines
710 B
Ruby
20 lines
710 B
Ruby
class CreateProjectStatistics < ActiveRecord::Migration
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
DOWNTIME = false
|
|
|
|
def change
|
|
# use bigint columns to support values >2GB
|
|
counter_column = { limit: 8, null: false, default: 0 }
|
|
|
|
create_table :project_statistics do |t|
|
|
t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade }
|
|
t.references :namespace, null: false, index: true
|
|
t.integer :commit_count, counter_column
|
|
t.integer :storage_size, counter_column
|
|
t.integer :repository_size, counter_column
|
|
t.integer :lfs_objects_size, counter_column
|
|
t.integer :build_artifacts_size, counter_column
|
|
end
|
|
end
|
|
end
|