Merge branch 'create-project-performance' into 'master'
Improve performance of creating projects See merge request !1650
This commit is contained in:
commit
6d91ee0095
4 changed files with 34 additions and 2 deletions
|
@ -94,8 +94,6 @@ module Projects
|
||||||
@project.team << [current_user, :master, current_user]
|
@project.team << [current_user, :master, current_user]
|
||||||
end
|
end
|
||||||
|
|
||||||
@project.update_column(:last_activity_at, @project.created_at)
|
|
||||||
|
|
||||||
if @project.import?
|
if @project.import?
|
||||||
@project.import_start
|
@project.import_start
|
||||||
end
|
end
|
||||||
|
|
5
db/migrate/20151020145526_add_services_template_index.rb
Normal file
5
db/migrate/20151020145526_add_services_template_index.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class AddServicesTemplateIndex < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_index :services, :template
|
||||||
|
end
|
||||||
|
end
|
|
@ -667,6 +667,7 @@ ActiveRecord::Schema.define(version: 20151026182941) do
|
||||||
|
|
||||||
add_index "services", ["created_at", "id"], name: "index_services_on_created_at_and_id", using: :btree
|
add_index "services", ["created_at", "id"], name: "index_services_on_created_at_and_id", using: :btree
|
||||||
add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree
|
add_index "services", ["project_id"], name: "index_services_on_project_id", using: :btree
|
||||||
|
add_index "services", ["template"], name: "index_services_on_template", using: :btree
|
||||||
|
|
||||||
create_table "snippets", force: true do |t|
|
create_table "snippets", force: true do |t|
|
||||||
t.string "title"
|
t.string "title"
|
||||||
|
|
28
spec/benchmarks/services/projects/create_service_spec.rb
Normal file
28
spec/benchmarks/services/projects/create_service_spec.rb
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Projects::CreateService, benchmark: true do
|
||||||
|
describe '#execute' do
|
||||||
|
let(:user) { create(:user, :admin) }
|
||||||
|
|
||||||
|
let(:group) do
|
||||||
|
group = create(:group)
|
||||||
|
|
||||||
|
create(:group_member, group: group, user: user)
|
||||||
|
|
||||||
|
group
|
||||||
|
end
|
||||||
|
|
||||||
|
benchmark_subject do
|
||||||
|
name = SecureRandom.hex
|
||||||
|
service = described_class.new(user,
|
||||||
|
name: name,
|
||||||
|
path: name,
|
||||||
|
namespace_id: group.id,
|
||||||
|
visibility_level: Gitlab::VisibilityLevel::PUBLIC)
|
||||||
|
|
||||||
|
service.execute
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to iterate_per_second(0.5) }
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue