diff --git a/lib/tasks/gitlab/db.rake b/lib/tasks/gitlab/db.rake index e473b756023..a414e480575 100644 --- a/lib/tasks/gitlab/db.rake +++ b/lib/tasks/gitlab/db.rake @@ -36,5 +36,16 @@ namespace :gitlab do # Add `IF EXISTS` because cascade could have already deleted a table. tables.each { |t| connection.execute("DROP TABLE IF EXISTS #{t} CASCADE") } end + + desc 'Configures the database by running migrate, or by loading the schema and seeding if needed' + task :configure => :environment do + # Runs migrate if the schema has already been loaded, otherwise loads the schema and seeds + if ActiveRecord::Base.connection.table_exists? 'schema_migrations' + Rake::Task['db:migrate'].invoke + else + Rake::Task['db:schema:load'].invoke + Rake::Task['db:seed_fu'].invoke + end + end end end