রেলগুলিতে একটি মডেল সরানো ("রেল জি মডেলের শিরোনামের বিপরীতে ...")


115
rails g model Rating user_id:integer message:string value:integer

আমি কীভাবে এই মডেলটি পুরোপুরি সরিয়ে ফেলব? ধন্যবাদ


5
নীচে মিখাইলের শীর্ষস্থানীয় উত্তরটি গত মাইগ্রেশনে নির্মিত একটি মডেলের ক্ষেত্রে প্রযোজ্য। যারা কোনও মডেল এবং এর টেবিলটি কিছু সময়ের জন্য ঘুরিয়ে ফেলতে চান তারা এই থ্রেডটি ঠিক কী করবেন তা বর্ণনা করে।
নিনজাকাননন

উত্তর:


192
bundle exec rake db:rollback    
rails destroy model <model_name>

আপনি যখন কোনও মডেল তৈরি করেন, এটি একটি ডাটাবেস স্থানান্তর তৈরি করে। আপনি যদি সেই মডেলটিতে 'ধ্বংস' চালান, এটি স্থানান্তর ফাইলটি মুছে ফেলবে, তবে ডাটাবেস সারণি নয়। সুতরাং রান আগে

bundle exec rake db:rollback

:( প্রথম লাইনটি পড়ুন এবং এটি করুন এটি আমার দোষ ছিল, তবে একটি সঠিক অর্ডার দেওয়া উত্তরটি সাহায্য করতে পারে
মাইক টি

4
যদি এটির বিকাশ হয় এবং আপনি চালাতে পারেন এমন ডেটা হারাতে ভয় পান না bundle exec rake db:drop db:create db:migrate। এটি একটি নতুন খালি ডাটাবেস হবে।
মিখাইল নিকালিউকিন

তোমাকে ধন্যবাদ আমি আবর্জনা থেকে স্থানান্তর পুনরুদ্ধার করেছিলাম তবে এটির সন্ধানে আমার আর একটি অনুপস্থিত স্থানান্তর ছিল তাই আমি আপনার পরামর্শ অনুযায়ী যাচ্ছি
মাইক টি

6
@ মাইকটি আপনি কি? আবর্জনা থেকে স্থানান্তর পুনরুদ্ধার করেছেন? আপনি কোন ভিসি ব্যবহার করবেন না? O_O আপনার অবশ্যই করা উচিত!
প্লান্টিক আইএএম

আমার জন্য কাজ, কিন্তু আমি "devise_for: মডেল" routes.rb ঢোকা এবং মুছে ফেলতে ছিল
cormacncheese

54

এটা চেষ্টা কর

rails destroy model Rating

এটি মডেল, মাইগ্রেশন, পরীক্ষা এবং ফিক্সচারগুলি সরিয়ে ফেলবে


5
এটি সমস্ত সরিয়ে দেয়, তবে এটি ডাউনগ্রেড মাইগ্রেশন বা কিছু তৈরি করে না।
মিঃআর

28

ভবিষ্যতের প্রশ্নকারীদের জন্য: আপনি যদি কনসোল থেকে টেবিলগুলি ফেলে দিতে না পারেন তবে এমন কোনও স্থানান্তর তৈরি করার চেষ্টা করুন যা আপনার জন্য টেবিলগুলি ফেলে দেয়। আপনার স্থানান্তর তৈরি করা উচিত এবং তারপরে ফাইল নোট টেবিলগুলিতে আপনি এইভাবে নামাতে চান:

class DropTables < ActiveRecord::Migration
  def up
    drop_table :table_you_dont_want
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

দুর্দান্ত উত্তর, ক্যাপিস্ট্রানো মোতায়েনের সাথে প্রত্যাশার সাথে আচরণ করবে।
লেসকিউসার

18
  1. স্থানান্তর অপসারণ করতে (আপনি যদি ইতিমধ্যে স্থানান্তরিত স্থানান্তর করেন)

    rake db:migrate:down VERSION="20130417185845" #Your migration version
  2. মডেল অপসারণ করতে

    rails d model name  #name => Your model name

rails d modelআমি আমার বিপরীতে খুঁজছি কি rails g model
কমসুন কে।

3

এখানে জেনি ল্যাং-এর উত্তরের একটি আলাদা বাস্তবায়ন রয়েছে যা রেল 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ত্রুটি নিক্ষেপ করবে ।


এটি একটি দরকারী উত্তর - তবে কমান্ডটি আমার পক্ষে কাজ করে না। আমি ব্যবহার করেছি: বান্ডিল এক্সিকিউট রেলগুলি মাইগ্রেশন ড্রপপিসিসগুলি জেনারেট করে এবং তারপরে আমি নীচেও মডেল মোছার কোডটি ব্যবহার করব।
অ্যান্ড্রু স্পোড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.