summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/ci/build.rb2
-rw-r--r--db/post_migrate/20181030111324_reset_project_metrics_artifact_total_size.rb22
2 files changed, 23 insertions, 1 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index cdfe8175a42..3d55d42ecaa 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -860,7 +860,7 @@ module Ci
end
def update_project_statistics_after_destroy
- update_project_statistics(-artifacts_size)
+ update_project_statistics(-read_attribute(:artifacts_size).to_i)
end
def update_project_statistics(difference)
diff --git a/db/post_migrate/20181030111324_reset_project_metrics_artifact_total_size.rb b/db/post_migrate/20181030111324_reset_project_metrics_artifact_total_size.rb
new file mode 100644
index 00000000000..f48e31b80db
--- /dev/null
+++ b/db/post_migrate/20181030111324_reset_project_metrics_artifact_total_size.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class ResetProjectMetricsArtifactTotalSize < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ ActiveRecord::Base.connection.execute <<~SQL
+ UPDATE project_statistics
+ SET build_artifacts_size=(
+ SELECT SUM(size)
+ FROM ci_job_artifacts
+ WHERE ci_job_artifacts.project_id = project_statistics.project_id
+ )
+ SQL
+ end
+
+ def down
+ # no-op
+ end
+end