diaspora/lib/tasks/db.rake
Jonne Haß 2a4db54db9 New configuration system
* Throw away old system
* Add new system
* Add new example files
* Replace all calls
* add the most important docs
* Add Specs
* rename disable_ssl_requirement to require_ssl
* cloudfiles isn't used/called in our code
* since community_spotlight.list is only used as enable flag replace it with such one and remove all legacy and irelevant codepaths around it
* die if session secret is unset and on heroku
* First basic infrastructure for version information
2012-09-26 20:19:37 +02:00

94 lines
3 KiB
Ruby

# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
namespace :db do
desc "rebuild and prepare test db"
task :rebuild do
Rake::Task['db:drop'].invoke
Rake::Task['db:drop_integration'].invoke
Rake::Task['db:create'].invoke
Rake::Task['db:migrate'].invoke
puts "seeding users, this will take awhile"
`rake db:seed` #ghetto hax as we have active record garbage in our models
puts "seeded!"
Rake::Task['db:test:prepare'].invoke
end
namespace :integration do
# desc 'Check for pending migrations and load the integration schema'
task :prepare => :environment do
abcs = ActiveRecord::Base.configurations
envs = abcs.keys.select{ |k| k.include?("integration") }
puts envs.inspect
envs.each_with_index do |env, i|
Rails.env = env
Rake::Task.tasks.each{ |task| task.reenable }
print "\n\n## preparing database for #{env}... "
puts (i == 0) ? "(go get yourself a coffee)" : "(time for another coffee)"
# do drop, schema:load_if_ruby, structure:load_if_sql, seed
Rake::Task['db:drop'].invoke
Rake::Task['db:setup'].invoke
puts "db #{ActiveRecord::Base.connection.current_database} done"
end
end
end
desc 'Delete the collections in the current RAILS_ENV database'
task :purge do
require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
puts "Purging the database for #{Rails.env}..."
Rake::Task['db:rebuild'].invoke
puts 'Deleting tmp folder...'
`rm -rf #{File.dirname(__FILE__)}/../../public/uploads/*`
end
desc 'Purge and seed the current RAILS_ENV database using information from db/seeds.rb'
task :reset do
puts "Resetting the database for #{Rails.env}".upcase
Rake::Task['db:purge'].invoke
Rake::Task['db:seed'].invoke
puts "Success!"
end
task :drop_integration do
ActiveRecord::Base.configurations.keys.select{ |k|
k.include?("integration")
}.each{ |k|
drop_database ActiveRecord::Base.configurations[k] rescue Mysql2::Error
}
end
task :fix_diaspora_handle do
puts "fixing the people in this seed"
require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
Person.where(:url => 'example.org').all.each{|person|
if person.owner
person.url = AppConfig.environment.url
person.diaspora_handle = person.owner.diaspora_handle
person.save
end
}
puts "everything should be peachy"
end
task :move_private_key do
require File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')
User.all.each do |user|
if user.serialized_private_key.nil?
user.serialized_private_key = user.person.serialized_key
user.save
person = user.person
person.serialized_key = nil
person.serialized_public_key = user.encryption_key.public_key.to_s
person.save
end
end
end
end