मेरे पास एक schema_utils लाइब्रेरी है जिसका मैं उपयोग करता हूं और इसमें माइग्रेशन को संभालने के लिए निम्न विधि है:
def self.with_schema(schema_name, &block)
conn = ActiveRecord::Base.connection
old_schema_search_path = conn.schema_search_path
conn.schema_search_path = schema_name
begin
yield
ensure
conn.schema_search_path = old_schema_search_path
end
end
मैं तब सामान्य रूप से माइग्रेशन का उपयोग करता हूं ताकि मैं rake:migrateNow को कॉल करना जारी रख सकूं, आपके माइग्रेशन में आप इसका उपयोग कर सकते हैं:
...
schemas.each do |schema|
SchemaUtils.with_schema(schema) do
#Put migration code here
#e.g. add_column :xyz, ...
end
end
क्योंकि मैं स्कीमा को खाता कोड में मैप करने की प्रवृत्ति रखता हूं, मैं निम्नलिखित कार्य करता हूं:
Account.for_each do |account|
SchemaUtils.with_schema(account.code) do
#Put migration code here
end
end