Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'bundler'
- Bundler.setup
- require 'active_record'
- ###### Set up databases
- def sh(cmd)
- puts cmd
- system cmd
- end
- {
- 'first.sqlite3' => 'Jo',
- 'second.sqlite3' => 'Fred'
- }.each do |db, name|
- puts "Creating database #{db}"
- FileUtils.rm_rf db
- sh("sqlite3 #{db} 'CREATE TABLE people (id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(255) NOT NULL)'")
- sh("sqlite3 #{db} \"INSERT INTO people (name) VALUES ('#{name}')\"")
- puts
- end
- ###### Models
- class Person < ActiveRecord::Base; end
- ###### The problem:
- puts "Connecting to first database on AR::Base"
- ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => 'first.sqlite3'
- puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
- puts
- puts "Connecting to second database on Person"
- Person.establish_connection :adapter => 'sqlite3', :database => 'second.sqlite3'
- puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
- puts
- puts "Disconnecting from second database"
- Person.remove_connection
- begin
- puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
- rescue ActiveRecord::ConnectionNotEstablished => e
- puts "Database connection did not revert to AR::Base's connection"
- end
Add Comment
Please, Sign In to add comment