rails g model Rating user_id:integer message:string value:integer
मैं इस मॉडल को पूरी तरह से कैसे निकाल सकता हूं? धन्यवाद
rails g model Rating user_id:integer message:string value:integer
मैं इस मॉडल को पूरी तरह से कैसे निकाल सकता हूं? धन्यवाद
जवाबों:
bundle exec rake db:rollback
rails destroy model <model_name>
जब आप कोई मॉडल बनाते हैं, तो यह एक डेटाबेस माइग्रेशन बनाता है। यदि आप उस मॉडल पर 'नष्ट' चलाते हैं, तो यह माइग्रेशन फ़ाइल को हटा देगा, लेकिन डेटाबेस तालिका को नहीं। तो दौड़ने से पहले
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
। यह एक नया खाली डेटाबेस होगा।
भविष्य के प्रश्नकर्ताओं के लिए: यदि आप कंसोल से तालिकाओं को नहीं गिरा सकते हैं, तो एक माइग्रेशन बनाने का प्रयास करें जो आपके लिए तालिकाओं को गिरा दे। आपको एक माइग्रेशन बनाना चाहिए और फिर फ़ाइल नोट तालिकाओं में जिसे आप इस तरह से छोड़ना चाहते हैं:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
माइग्रेशन निकालने के लिए (यदि आप पहले से माइग्रेट माइग्रेट कर चुके हैं)
rake db:migrate:down VERSION="20130417185845" #Your migration version
मॉडल को हटाने के लिए
rails d model name #name => Your model name
rails d model
वह है जो मैं अपने को उलटने के लिए देख रहा हूं rails g model
।
यहां जेनी लैंग के जवाब का एक अलग कार्यान्वयन है जो रेल 5 के लिए काम करता है।
पहले माइग्रेशन फ़ाइल बनाएँ:
bundle exec be rails g migration DropEpisodes
फिर माइग्रेशन फ़ाइल को निम्नानुसार आबाद करें:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
दौड़ने rails db:migrate
से टेबल गिर जाएगी। यदि आप चलाते हैं rails db:rollback
, तो रेल एक ActiveRecord::IrreversibleMigration
त्रुटि फेंक देंगे ।