databases.rake revision 6b136443f2bc8ea49192210a7281ffa0f44b14fc
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misrarequire 'extend/active_record/connection_adapters/postgre_sql_adapter'
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misranamespace :db do
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra desc "Drop all tables in the database"
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra task :drop_tables => ["db:truncate", "db:load_config"] do
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra config = ActiveRecord::Base.configurations[::Rails.env]
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra case config["adapter"]
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra when "mysql", "postgresql"
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ActiveRecord::Base.connection.tables.each do |table|
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ActiveRecord::Base.connection.execute("DROP TABLE #{table} CASCADE")
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra desc "Drop all types self-defined in the database"
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra task :drop_types => ["db:truncate", "db:load_config"] do
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra config = ActiveRecord::Base.configurations[::Rails.env]
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills case config["adapter"]
9d8d9e1151895fac86a2e3216647dd2a020ecf71Garrett D'Amore when "postgresql"
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra ActiveRecord::Base.connection.types.each do |pgsql_type|
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills ActiveRecord::Base.connection.execute("DROP TYPE #{pgsql_type} CASCADE")
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills task :truncate => ["db:load_config", "environment"] do
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills namespace :migrate do
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills desc 'Perform migration but not before cleaning the db'
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills task :clean do
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:drop_tables"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:drop_types"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:migrate"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills task :recreate do
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:migrate:clean"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills cleanup_git_folders
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:redis:clean"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["db:seed"].invoke
5e8715b93d1d651ab2805b5e6e98b17df49fa92fGary Mills Rake::Task["repos:create"].invoke
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra namespace :redis do
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra desc "Clean redis key value store"
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra task :clean do
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra cleanup_redis
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misradef cleanup_git_folders
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra FileUtils.rm_rf(Dir.glob(Ontohub::Application.config.git_root.join('*')))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra FileUtils.rm_rf(Dir.glob(Ontohub::Application.config.symlink_path.join('*')))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra FileUtils.rm_rf(Dir.glob(Ontohub::Application.config.commits_path.join('*')))
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misradef cleanup_redis
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra require Rails.root.join('lib', 'wrapping_redis.rb')
015a6ef6781cc3ceba8ad3bfbae98449b6002a1fSaurabh Misra include WrappingRedis