Sha256: 23f12bb114501c27e0fb048d92c3814f53760513bbc7ea28b2c75c39ac6f3723

Contents?: true

Size: 1.34 KB

Versions: 6

Compression:

Stored size: 1.34 KB

Contents

load 'active_record/railties/databases.rake'

ActiveRecord::Tasks::DatabaseTasks.tap do |config|
  config.db_dir = 'db'
  config.migrations_paths = ['db/migrate']
  config.seed_loader = Class.new do
    def self.load_seed
      load Grape::App.root.join('db', 'seeds.rb').to_s
    end
  end
end

namespace :db do

  Rake::Task['load_config'].clear

  task load_config: :environment do
    ActiveRecord::Tasks::DatabaseTasks.tap do |config|
      config.root   = Grape::App.root
      config.env    = Grape::App.env
      config.database_configuration = ActiveRecord::Base.configurations
    end
  end

  desc 'Create a new migration using NAME'
  task migration: :environment do
    abort 'No NAME specified. Example usage: `rake db:migration NAME=create_widgets`' unless ENV['NAME']

    migrations_path = ActiveRecord::Migrator.migrations_paths.first

    name = ENV['NAME']
    path = File.join(migrations_path, "#{Time.now.utc.strftime('%Y%m%d%H%M%S')}_#{name}.rb")

    ar_version = [ActiveRecord::VERSION::MAJOR, ActiveRecord::VERSION::MINOR].join('.')

    FileUtils.mkdir_p(migrations_path)
    File.write path, <<-MIGRATION.strip_heredoc
      class #{name.camelize} < ActiveRecord::Migration[#{ar_version}]
        def change
        end
      end
    MIGRATION
    puts path
  end

  namespace :test do
    desc 'Prepare test DB'
    task :prepare
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
grape-app-0.8.4 lib/grape/app/tasks/databases.rake
grape-app-0.8.3 lib/grape/app/tasks/databases.rake
grape-app-0.8.2 lib/grape/app/tasks/databases.rake
grape-app-0.8.1 lib/grape/app/tasks/databases.rake
grape-app-0.8.0 lib/grape/app/tasks/databases.rake
grape-app-0.7.1 lib/grape/app/tasks/databases.rake