Guest User

Untitled

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'bundler'
  4. Bundler.setup
  5.  
  6. require 'active_record'
  7.  
  8. ###### Set up databases
  9.  
  10. def sh(cmd)
  11. puts cmd
  12. system cmd
  13. end
  14.  
  15. {
  16. 'first.sqlite3' => 'Jo',
  17. 'second.sqlite3' => 'Fred'
  18. }.each do |db, name|
  19. puts "Creating database #{db}"
  20. FileUtils.rm_rf db
  21. sh("sqlite3 #{db} 'CREATE TABLE people (id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(255) NOT NULL)'")
  22. sh("sqlite3 #{db} \"INSERT INTO people (name) VALUES ('#{name}')\"")
  23. puts
  24. end
  25.  
  26. ###### Models
  27.  
  28. class Person < ActiveRecord::Base; end
  29.  
  30. ###### The problem:
  31.  
  32. puts "Connecting to first database on AR::Base"
  33. ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => 'first.sqlite3'
  34. puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
  35. puts
  36. puts "Connecting to second database on Person"
  37. Person.establish_connection :adapter => 'sqlite3', :database => 'second.sqlite3'
  38. puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
  39. puts
  40. puts "Disconnecting from second database"
  41. Person.remove_connection
  42.  
  43. begin
  44. puts "Person.all.collect(&:name): #{Person.all.collect(&:name).inspect}"
  45. rescue ActiveRecord::ConnectionNotEstablished => e
  46. puts "Database connection did not revert to AR::Base's connection"
  47. end
Add Comment
Please, Sign In to add comment