config/database.yml
test:
adapter: sqlite3
database: ":memory:"
config/spring.rb
if defined?(Spring)
Spring.after_fork do
load "#{Rails.root.to_s}/config/initializers/in_memory_db.rb"
end
end
config/initializers/in_memory_db.rb
def in_memory_database?
Rails.env == "test" and
ActiveRecord::Base.connection.adapter_name.downcase.include?('sqlite') and
Rails.configuration.database_configuration['test']['database'] == ':memory:'
end
if in_memory_database?
require 'active_record/migration'
ActiveRecord::Migration.verbose = false
puts "creating sqlite in memory database"
load "#{Rails.root}/db/schema.rb"
end