module MagicRecipes::Db

Db - Deploy-Recipes

Some recipes to work with databases, especialy when you have an server, where you can't delete or create db's.

Tasks:

:seed # => seed the database

:migrate # => migrate the database

:delete_tables # => delete all Tables of the Database!

:save_reset # => DB-Reset for user without dbcreate permission (deletes all tables than migrates again)

Callbacks:
    • -

Public Class Methods

load_into(configuration) click to toggle source
# File lib/magic_recipes/db.rb, line 20
    def self.load_into(configuration)
      configuration.load do
        
        namespace :db do
          
          desc "seed the database"
          task :seed do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                #{rake} db:seed RAILS_ENV=#{rails_env}
              CMD
            else
              run "cd #{latest_release} && #{rake} db:seed RAILS_ENV=#{rails_env}"
            end
          end
  
          desc "migrate the database"
          task :migrate do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                #{rake} db:migrate RAILS_ENV=#{rails_env}
              CMD
            else
              run "cd #{latest_release} && #{rake} db:migrate RAILS_ENV=#{rails_env}"
            end
          end
          
          desc "drop the database"
          task :drop do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                #{rake} db:drop RAILS_ENV=#{rails_env}
              CMD
            else
              run "cd #{latest_release} && #{rake} db:drop RAILS_ENV=#{rails_env}"
            end
          end
          
          desc "reset the database"
          task :reset do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                #{rake} db:reset RAILS_ENV=#{rails_env}
              CMD
            else
              run "cd #{latest_release} && #{rake} db:reset RAILS_ENV=#{rails_env}"
            end
          end
          
          desc "create the database"
          task :create do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                #{rake} db:create RAILS_ENV=#{rails_env}
              CMD
            else
              run "cd #{latest_release} && #{rake} db:create RAILS_ENV=#{rails_env}"
            end
          end
          
          desc "delete all Tables of the Database!"
          task :delete_tables do
            if use_rvm
              run <<-CMD
                #{rvm_cmd} && 
                cd #{latest_release} && 
                RAILS_ENV=#{rails_env} rails runner "ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.drop_table t }"
              CMD
            else
              run "cd #{latest_release} && RAILS_ENV=#{rails_env} rails runner 'ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.drop_table t }'"
            end
            # => ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.drop_table t }
          end
          
          desc "DB-Reset for user without dbcreate permission (deletes all tables than migrates again)"
          task :save_reset do
            delete_tables
            migrate
          end
          
        end
        
        # eof
        
      end
    end