require 'bundler'
Bundler.with_clean_env
system 'bundle install'
end
to run your task.
A blog about the problems I've encountered while being a Ruby on Rails developer, and how I've solved them.
Showing posts with label rake. Show all posts
Showing posts with label rake. Show all posts
Thursday, March 5, 2015
Using Bundler in a Rake Task
If you want to use Bundler in a rake task to automate something like bundle install, you can't simply call bundle install in a system call. Fortunately, Bundler provides a method called Bundler.with_clean_env. Using that, you can do something like
Friday, January 16, 2015
Rake Database Tasks Outside Rails
My first content post is, ironically, not directly about Rails. It is about using a very common Rails feature - rake database tasks - in a Ruby project that utilizes ActiveRecord but not Rails.
By default, tasks like rake db:migrate are available in Rails but not in a Ruby project that includes ActiveRecord. Fortunately, with a couple of lines added to your Rakefile this issue can be fixed.
// Rakefile
DatabaseTasks.env = ENV['YOUR_ENV_VAR'] || 'development'
DatabaseTasks.db_dir = 'db'
DatabaseTasks.database_configuration = YAML.load_file('config/database.yml')
DatabaseTasks.migrations_paths = "#{DatabaseTasks.db_dir}/migrate"
task :environment do
ActiveRecord::Base.configurations = DatabaseTasks.database_configuration
ActiveRecord::Base.establish_connection DatabaseTasks.env.to_sym
end
load 'active_record/railties/databases.rake'
And voila. Now, you can use create, migrate, and all of the other rake db tasks you're used to in a Rails project.
Subscribe to:
Posts (Atom)