के लिए रेल माइग्रेशन मैं विभिन्न ग्राहकों के लिए PostgreSQL स्कीमा का उपयोग कर बहु-किरायेदार रेल एप्लिकेशन पर काम कर रहा हूं। रेल माइग्रेशन बॉक्स के बाहर कई स्कीमा के साथ काम नहीं करते हैं, इसलिए मैंने सभी स्कीमा माइग्रेट करने के लिए निम्नलिखित रेक कार्य किया और ऐसा लगता है कि यह काम करता है। मेरा सवाल यह है कि अगर दूसरों ने बेहतर और अधिक सुरुचिपूर्ण समाधान लागू किए हैं। मैं कई स्कीमा का उपयोग करके PostgreSQL के लिए रेल कोड उदाहरण सहित एक अच्छे ट्यूटोरियल के साथ भी वास्तव में खुश रहूंगा। अब तक मैं केवल विषय http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html पर एक अच्छी प्रस्तुति और मैं क्या tomayko.com/writings/rails-multiple-connections के लिए लक्ष्य कर रहा हूँ का एक उदाहरण पाया हैpostgreSQL स्कीमा
desc 'Migrates all postgres schemas'
task :schemas do
# get all schemas
env = "#{RAILS_ENV}"
config = YAML::load(File.open('config/database.yml'))
ActiveRecord::Base.establish_connection(config[env])
schemas = ActiveRecord::Base.connection.select_values("select * from pg_namespace where nspname != 'information_schema' AND nspname NOT LIKE 'pg%'")
puts "Migrate schemas: #{schemas.inspect}"
# migrate each schema
schemas.each do |schema|
puts "Migrate schema: #{schema}"
config = YAML::load(File.open('config/database.yml'))
config[env]["schema_search_path"] = schema
ActiveRecord::Base.establish_connection(config[env])
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
end
end
लिक्विबेस स्कीमा के साथ काम करता है, जहां तक मुझे पता है कि – Janning
@ जेनिंग लिक्विबेस एक ऐसा समाधान नहीं है जो रेलवे का उपयोग करता है जो ActiveRecord मोडल के साथ काम करता है। – lillq