diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-02-06 18:06:46 -0600 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-02-06 18:06:46 -0600 |
commit | 9d7c5e75841eff48217487b3acda56cf265a2aef (patch) | |
tree | d90819e572eab930a8729ed767f6565620922e8a /app/models/environment.rb | |
parent | b0279cc2239e0b24d59bc80085a9ba42fcf6226a (diff) | |
download | gitlab-ce-9d7c5e75841eff48217487b3acda56cf265a2aef.tar.gz |
Address feedback
Diffstat (limited to 'app/models/environment.rb')
-rw-r--r-- | app/models/environment.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/models/environment.rb b/app/models/environment.rb index 14787f79a36..1e4c420cec7 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -38,7 +38,13 @@ class Environment < ActiveRecord::Base scope :available, -> { with_state(:available) } scope :stopped, -> { with_state(:stopped) } - scope :order_by_last_deployed_at, -> { order(Gitlab::Database.nulls_first_order('(SELECT MAX(id) FROM deployments WHERE deployments.environment_id = environments.id)', 'ASC')) } + scope :order_by_last_deployed_at, -> do + max_deployment_id_sql = + Deployment.select(Deployment.arel_table[:id].maximum). + where(Deployment.arel_table[:environment_id].eq(arel_table[:id])). + to_sql + order(Gitlab::Database.nulls_first_order("(#{max_deployment_id_sql})", 'ASC')) + end state_machine :state, initial: :available do event :start do |