diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-12-26 09:48:30 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2016-12-26 09:48:30 +0000 |
commit | 0ebd50ce0015a6a1dcd273cada9d9be8c20a12bb (patch) | |
tree | 4a92afbdd3e1e473f7d881024b49a36b9d5d3ebb /db/migrate | |
parent | 645412b57f558d58418aad278c9a3bf421439e1c (diff) | |
parent | 3ef4f74b1acc9399db320b53dffc592542de0126 (diff) | |
download | gitlab-ce-0ebd50ce0015a6a1dcd273cada9d9be8c20a12bb.tar.gz |
Merge branch 'feature/more-storage-statistics' into 'master'
Add more storage statistics
See merge request !7754
Diffstat (limited to 'db/migrate')
-rw-r--r-- | db/migrate/20161201155511_create_project_statistics.rb | 20 | ||||
-rw-r--r-- | db/migrate/20161201160452_migrate_project_statistics.rb | 23 |
2 files changed, 43 insertions, 0 deletions
diff --git a/db/migrate/20161201155511_create_project_statistics.rb b/db/migrate/20161201155511_create_project_statistics.rb new file mode 100644 index 00000000000..26e6d3623eb --- /dev/null +++ b/db/migrate/20161201155511_create_project_statistics.rb @@ -0,0 +1,20 @@ +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 diff --git a/db/migrate/20161201160452_migrate_project_statistics.rb b/db/migrate/20161201160452_migrate_project_statistics.rb new file mode 100644 index 00000000000..3ae3f2c159b --- /dev/null +++ b/db/migrate/20161201160452_migrate_project_statistics.rb @@ -0,0 +1,23 @@ +class MigrateProjectStatistics < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = true + DOWNTIME_REASON = 'Removes two columns from the projects table' + + def up + # convert repository_size in float (megabytes) to integer (bytes), + # initialize total storage_size with repository_size + execute <<-EOF + INSERT INTO project_statistics (project_id, namespace_id, commit_count, storage_size, repository_size) + SELECT id, namespace_id, commit_count, (repository_size * 1024 * 1024), (repository_size * 1024 * 1024) FROM projects + EOF + + remove_column :projects, :repository_size + remove_column :projects, :commit_count + end + + def down + add_column_with_default :projects, :repository_size, :float, default: 0.0 + add_column_with_default :projects, :commit_count, :integer, default: 0 + end +end |