मैं रेल 3.2 माइग्रेशन में ड्रॉप टेबल कैस्केड को कैसे बल दूं?रेल: एक ड्रॉप टेबल कैस्केड माइग्रेशन बनाएं
क्या ड्रॉप_टेबल ("table_name") को पास करने का कोई विकल्प है?
मैं रेल 3.2 माइग्रेशन में ड्रॉप टेबल कैस्केड को कैसे बल दूं?रेल: एक ड्रॉप टेबल कैस्केड माइग्रेशन बनाएं
क्या ड्रॉप_टेबल ("table_name") को पास करने का कोई विकल्प है?
आप हमेशा माइग्रेशन में कच्चे एसक्यूएल चला सकते हैं।
MySQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
अपने initializers निर्देशिका कहा जाता postgres.rb तो किया था में एक फ़ाइल रखो। यह वैसे भी रेल 4.1 के लिए काम करता है।
module ActiveRecord
module ConnectionAdapters # :nodoc:
module SchemaStatements
def drop_table(table_name, options = {})
execute "DROP TABLE #{quote_table_name(table_name)} CASCADE"
end
end
end
end
रेल में 4 आप कर सकते हैं निम्नलिखित:
drop_table :accounts, force: :cascade
कि MySQL के लिए काम करता है, लेकिन वाक्य रचना PostgreSQL के लिए थोड़ा अलग है: निष्पादित "ड्रॉप तालिका # {: TABLE_NAME} CASCADE" – l3x