Sha256: b74cf95df62decd94c2bd028df61482a0872763ad8473b56890586c1e8f6db66

Contents?: true

Size: 1.38 KB

Versions: 5

Compression:

Stored size: 1.38 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 # rubocop:disable Metrics/BlockLength

  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

5 entries across 5 versions & 1 rubygems

Version Path
grape-app-0.6.4 lib/grape/app/tasks/databases.rake
grape-app-0.6.3 lib/grape/app/tasks/databases.rake
grape-app-0.6.2 lib/grape/app/tasks/databases.rake
grape-app-0.6.1 lib/grape/app/tasks/databases.rake
grape-app-0.6.0 lib/grape/app/tasks/databases.rake