Created
July 26, 2013 10:49
-
-
Save drogus/6087979 to your computer and use it in GitHub Desktop.
This is the example contents of the Rakefile, which you would use to run active record tasks without using Rails. It assumes using the same directories as rails uses: `db/migrate`, `config/database.yml`.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'bundler/setup' | |
require 'active_record' | |
include ActiveRecord::Tasks | |
db_dir = File.expand_path('../db', __FILE__) | |
config_dir = File.expand_path('../config', __FILE__) | |
DatabaseTasks.env = ENV['ENV'] || 'development' | |
DatabaseTasks.db_dir = db_dir | |
DatabaseTasks.database_configuration = YAML.load(File.read(File.join(config_dir, 'database.yml'))) | |
DatabaseTasks.migrations_paths = File.join(db_dir, 'migrate') | |
task :environment do | |
ActiveRecord::Base.configurations = DatabaseTasks.database_configuration | |
ActiveRecord::Base.establish_connection DatabaseTasks.env | |
end | |
load 'active_record/railties/databases.rake' |
I would like to point to Jason modification of this gist, which works for ActiveRecord 4.2.0
Solved as:
# Rakefile
if Rake.application.top_level_tasks != ['test']
require_relative 'config/application'
Rails.application.load_tasks
Rake::Task['test'].clear
end
task :test do
ENV['RAILS_ENV'] = 'test'
Dir.glob('./test/**/*_test.rb').each { |file| require file}
end
I have made minimal example/setup using Rails migration and active record outside Rails
https://github.com/euclid1990/rails-migration
(Support Rails >= 5.2)
🔢
I get
ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Super helpful gist!
I'm using Ruby 2.3.1 and found I needed to change the env variable to a symbol when making the connection:
ActiveRecord::Base.establish_connection DatabaseTasks.env.to_sym
Otherwise I was getting a missing adapter error.