Farklı istemciler için PostgreSQL şemaları kullanarak çok kiracılı raylar üzerinde çalışıyorum. Raylar geçişleri, kutudan çok sayıda şema ile çalışmaz, bu nedenle tüm şemaları taşımak için aşağıdaki komisyon görevini yaptım ve işe yaramış gibi görünüyor. Benim sorum başkalarının daha iyi ve daha zarif çözümler uygulamış olmasıdır. Çok sayıda şema kullanarak PostgreSQL için ray kod örnekleri de dahil olmak üzere iyi bir öğretici ile gerçekten mutlu olurdum. Bugüne kadar yalnızca konu http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html üzerinde iyi bir sunum ve ben tomayko.com/writings/rails-multiple-connections için amaçlayan ediyorum ne bir örnek bulduk aldığım takdirdePostgreSQL şemaları için geçişler için raylar
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
Liquibase, bildiğim kadarıyla şemalarla çalışır. – Janning
@Janning Liquibase, rayların kullandığı ActiveRecord modle çalışan bir çözüm değildir. – lillq