class Batteries::Tasks::Migrations
Attributes
database[W]
logger[RW]
migrations_path[RW]
setup_hook[RW]
Public Class Methods
new(options: {}) { |self| ... }
click to toggle source
# File lib/batteries/tasks/migrations.rb, line 12 def initialize(options: {}) self.migrations_path = options.fetch(:migrations_path) { "migrate" } self.database = options.fetch(:database) { DB if defined?(DB) } self.logger = options.fetch(:logger) { Logger.new($stdout) } self.setup_hook = options[:setup_hook] yield self if block_given? define end
Public Instance Methods
database()
click to toggle source
# File lib/batteries/tasks/migrations.rb, line 67 def database case @database when String then Object.const_get(@database) else @database end end
define()
click to toggle source
# File lib/batteries/tasks/migrations.rb, line 23 def define desc "Migrate test database to latest version" task :test_up do migrate("test", nil) end desc "Migrate test database all the way down" task :test_down do migrate("test", 0) end desc "Migrate test database all the way down and then back up" task :test_bounce do migrate("test", 0) migrate("test", nil) end desc "Migrate development database to latest version" task :dev_up, [:version] do |_t, args| version = args[:version] version = version ? version.to_i : nil migrate("development", version) end desc "Migrate development database to all the way down" task :dev_down, [:version] do |_t, args| version = args[:version].to_i migrate("development", version) end desc "Migrate development database all the way down and then back up" task :dev_bounce do migrate("development", 0) migrate("development", nil) end desc "Migrate production database to latest version" task :prod_up do migrate("production", nil) end end
migrate(env, version)
click to toggle source
# File lib/batteries/tasks/migrations.rb, line 74 def migrate(env, version) ENV["RACK_ENV"] = env setup_hook.call if setup_hook.respond_to?(:call) Sequel.extension :migration database.loggers << logger if logger Sequel::Migrator.apply(database, migrations_path, version) end