Sha256: 7f9a4742b4b85766214f768673fc195e591012322986e799224e5325c2904fde

Contents?: true

Size: 1.28 KB

Versions: 6

Compression:

Stored size: 1.28 KB

Contents

require "pathname"
require "fileutils"

namespace :db do
  desc "Perform migration reset (full erase and migration up)"
  task reset: :setup do
    gateway = ROM::SQL.gateway
    gateway.run_migrations(target: 0)
    gateway.run_migrations
    puts "<= db:reset executed"
  end

  desc "Migrate the database (options [version_number])]"
  task :migrate, [:version] => :setup do |_, args|
    gateway = ROM::SQL.gateway
    version = args[:version]

    if version.nil?
      gateway.run_migrations
      puts "<= db:migrate executed"
    else
      gateway.run_migrations(target: version.to_i)
      puts "<= db:migrate version=[#{version}] executed"
    end
  end

  desc "Perform migration down (erase all data)"
  task clean: :setup do
    gateway = ROM::SQL.gateway

    gateway.run_migrations(target: 0)
    puts "<= db:clean executed"
  end

  desc "Create a migration (parameters: NAME, VERSION)"
  task :create_migration, [:name, :version] => :setup do |_, args|
    gateway = ROM::SQL.gateway
    name, version = args[:name], args[:version]

    if name.nil?
      puts "No NAME specified. Example usage:
        `rake db:create_migration[create_users]`"
      exit
    end

    path = gateway.migrator.create_file(*[name, version].compact)

    puts "<= migration file created #{path}"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rom-sql-0.6.1 lib/rom/sql/tasks/migration_tasks.rake
rom-sql-0.6.0 lib/rom/sql/tasks/migration_tasks.rake
rom-sql-0.6.0.rc1 lib/rom/sql/tasks/migration_tasks.rake
rom-sql-0.6.0.beta1 lib/rom/sql/tasks/migration_tasks.rake
rom-sql-0.5.3 lib/rom/sql/tasks/migration_tasks.rake
rom-sql-0.5.2 lib/rom/sql/tasks/migration_tasks.rake