রেলগুলিতে ভাস্কর্যটি পূর্বাবস্থায় ফেরান


493

রেলগুলিতে স্ক্যাফোল্ড কমান্ডের প্রভাবগুলি 'পূর্বাবস্থায়' ফেলার কোনও উপায় আছে কি?


4
রেলগুলি স্ক্যাফোল্ড এক্সএক্সএক্সএক্স ধ্বংস করে
রবিন গার্গ

1
5 রেলগুলিতে: এর সাথে স্ক্যাফোল্ড জেনারেট করুন: s রেলগুলি স্ক্যাফোল্ড <নাম> তৈরি করে। আপনি যদি আপনার ফাইলগুলি স্থানান্তরিত করেন তবে একটি রোলব্যাক করুন: ke রেক ডিবি: রোলব্যাক । এর সাথে স্ক্যাফোল্ডটিকে ধ্বংস বা পূর্বাবস্থায় ফিরিয়ে আনুন: s রেলগুলি স্ক্যাফোর্ডকে <name> নষ্ট করে। আপনি এ সম্পর্কে আরও পড়তে পারেন
নেশা জোরিক

উত্তর:


777

প্রথমত , আপনি যদি ইতিমধ্যে scaffoldকমান্ড দ্বারা উত্পন্ন স্থানান্তরগুলি চালিত করেন তবে আপনাকে প্রথমে রোলব্যাক করতে হবে।

rake db:rollback

আপনি ব্যবহার করে ভারা তৈরি করতে পারেন:

rails generate scaffold MyFoo 

(বা অনুরূপ), এবং আপনি এটি ব্যবহার করে ধ্বংস / পূর্বাবস্থায়িত করতে পারেন

rails destroy scaffold MyFoo

এটি দ্বারা নির্মিত সমস্ত ফাইল মুছে ফেলা হবে generate, তবে আপনি ম্যানুয়ালি করা কোনও অতিরিক্ত পরিবর্তন নয়।


11
rake db:rollbackআপনি নিজের ভারাটিকে ধ্বংস করার আগে ভুলে যাবেন না । এর আগে স্ক্যাফোোল্ডের মাইগ্রেশন ব্যতীত অন্য কোনও মাইগ্রেশন না থাকলে এটি টেবিলটি নষ্ট / ছাড়বে।
ইয়াকব উবাইদি

3
কিছু ক্ষেত্রে এখনও বাকী ফাইল রয়েছে যা ভারা থেকে মুছে ফেলা হয়নি। আপনার সংস্করণ নিয়ন্ত্রণ পরীক্ষা করুন, উদাহরণস্বরূপ git statusএবং / অথবা git diff, ডায়মান্ট কমান্ডটি কিছু মিস করেছে কিনা তা দেখুন।
অ্যারন-কোডিং

1
আপনি যদি রেক ডিবি চালিয়ে যান: মাইগ্রেট করুন তার পরে অন্য কিছু স্থানান্তর করেছেন তবে স্ক্যাফোল্ডটি "ধ্বংস" করার আগে টেবিলটি নষ্ট করার জন্য একটি স্থানান্তর তৈরি করা বুদ্ধিমানের কাজ। সুতরাং রেলস জি মাইগ্রেশন ড্রপমাইফুগুলির মতো কিছু করুন এবং তারপরে মাইগ্রেশন ফাইলটি খুলুন এবং টেবিলটি বাদ দেওয়ার জন্য কোড যুক্ত করুন। এই মাইগ্রেশন চালান এবং তারপরে ধ্বংস স্ক্যাফল্ড চালান।
বিক্রম শর্মা

এছাড়াও মনে রাখবেন যে এটি আমার_ফুর জন্য ভিউ ফোল্ডারটি সরিয়ে ফেলবে, এমনকি সেখানে অতিরিক্ত ফাইল থাকলেও।
অ্যান্ড্রু কে

167

Isষভ রাস্তোগি ঠিক, এবং রেল সহ 3.0 বা তার বেশি:

রেলগুলি ভারা তৈরি করে ...
রেল পাথর নষ্ট করে ...

8
@femi টেবিলটি রাক দিয়ে তৈরি করা হয়েছিল। এটি অপসারণের সর্বোত্তম rake db:rollbackrails destroy scaffolddb:migrate:down VERSION=20080906120000
উপায়টি

40

আপনি যা করেছেন তা আপনি পূর্বাবস্থায় ফেলাতে পারেন

rails generate xxx

দ্বারা

rails destroy xxx

উদাহরণস্বরূপ, এটি মাইগ্রেশন, স্ক্যাফোल्ड, মডেল ... ইত্যাদিতে জেনারেটর প্রয়োগ করে


13

আপনি যদি কেবল একটি জেনারেটর তৈরি করা ফাইলগুলি দেখতে চান তবে আপনি জেনারেটর - প্রিপ্রেড বা -p বিকল্পটি পাস করতে পারেন।


10

সেরা উপায় হ'ল:

destroy rake db:  rake db:rollback

স্ক্যাফোোল্ডের জন্য:

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি যে স্থানান্তরটি রোলব্যাক বা কোনও নির্দিষ্ট সংস্করণে করেছেন তা আপনি পূর্বাবস্থায় ফেরান।


8

প্রথমবারের জন্য, আপনি যদি স্ক্যাফোल्ड তৈরি করে থাকেন তবে আপনি ডাটাবেস স্থানান্তর পরীক্ষা করতে পারেন। আপনার ডেটাবেস পরিষ্কার করার জন্য আপনাকে অবশ্যই তাদের ধ্বংস করতে হবে

rake db:rollback

তারপর

rails d scaffold

4

ভাস্কর্য তৈরি করতে:

rails generate scaffold xyz

ভারা ফিরিয়ে দিতে:

rails destroy scaffold xyz

4

রেল নাম নষ্ট করে

rake db:rollback

1
প্রথম রোলব্যাক (যদি আপনি চলে আসেন), তারপর ফাঁসির মঞ্চ ধ্বংস
gavit


2

খুব ভাস্কর্যটি ধ্বংস করার পরেও আপনাকে মাইগ্রেশন ফিরিয়ে নিতে হবে

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

সুতরাং, প্রক্রিয়াটি আপনার রেলগুলিতে ভাসমান পূর্বাবস্থায় ফেরাতে অনুসরণ করা উচিত below

  1. rails d scaffold FooBar
  2. rake db:rollbackআপনি যদি_হাদ_রুন_ rake db:migrateউপরের ভারা বানানোর পরে?

এটাই!

চিয়ার্স!


2

রোলব্যাকের সুপারিশ করুন প্রথমে আপনার টার্মিনালটি টাইপ করুন।

rake db:rollback

ধ্বংস স্ক্যাফোল্ড যুক্ত করুন ('ডি' 'ধ্বংস' এর জন্য দাঁড়িয়েছে)

rails d scaffold name_of_scaffold

আপনার কোড উপভোগ করুন।


1

এটা ব্যবহার কর

rails d scaffold MODEL_NAME

rake db:rollback

1

প্রথমে আপনাকে রেক ডিবি করতে হবে : টেবিলটি নষ্ট করার জন্য রোলব্যাক করুন
যদি আপনি ইতিমধ্যে রেক ডিবি চালিয়ে যান: মাইগ্রেশন করুন এবং তারপরে আপনি চালাতে পারবেন

রেল d ভারা মডেল


1

আপনাকে প্রথমে রেক ডিবি করে মাইগ্রেশনগুলি রোলব্যাক করতে হবে: যদি হয় তবে রোলব্যাক এবং তারপরে স্ক্যাফোোল্ডটি ধ্বংস করে

rails d scaffold foo

1

হ্যাঁ, scaffoldনিজেই এবং সমস্ত জিনিস যা এটি একত্রিত করে।

destroyকমান্ড বিপরীত generateএবং এক পূর্বাবস্থা হবে। নামটি ঠিক একইভাবে দিয়ে দিন generateএবং এটি আপনার প্রকল্প থেকে সরিয়ে দেওয়া হবে:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text

1

স্ক্যাফোল্ড তৈরি করতে:

rails generate scaffold abc

এই ভাস্কর্যটি ফিরিয়ে আনতে:

rails destroy scaffold abc

আপনি যদি এটির জন্য মাইগ্রেশনটি চালিয়ে যান তবে কেবল রোলব্যাক করুন

rake db:rollback STEP=1

1

গিট উপর ভিত্তি করে সরবরাহকারী অন্য সমাধান

একটি নতুন প্রকল্প শুরু করুন

rails new project_name
cd project_name

গিট শুরু করুন

git init
git commit -m "initial commit"

একটি স্ক্যাফোল্ড তৈরি করুন

rails g scaffold MyScaffold
rake db:migrate

ভারাটিকে রোলব্যাক করুন

rake db:rollback
git reset --hard
git clean -f -d

1

রেলস [বিকল্প] স্ক্যাফোোল্ড স্ক্যাফোোল্ড_নাম

পছন্দ

g    generate
d    destroy

যদি তুমি করো

rails g  scaffold myFoo

তারপরে আবার ব্যবহার করে এটি বিপরীত করুন

rails d scaffold MyFoo

0

যখন আমরা স্ক্যাফোল্ড তৈরি করি, নিম্নলিখিত ফাইলগুলি তৈরি করা হবে:

COMMAND: rails generate scaffold Game

ফাইল তৈরি করা হয়েছে:

>       invoke  active_record
>       create    db/migrate/20160905064128_create_games.rb
>       create    app/models/game.rb
>       invoke    test_unit
>       create      test/models/game_test.rb
>       create      test/fixtures/games.yml
>       invoke  resource_route
>        route    resources :games
>       invoke  inherited_resources_controller
>       create    app/controllers/games_controller.rb
>       invoke    erb
>       create      app/views/games
>       create      app/views/games/index.html.erb
>       create      app/views/games/edit.html.erb
>       create      app/views/games/show.html.erb
>       create      app/views/games/new.html.erb
>       create      app/views/games/_form.html.erb
>       invoke    test_unit
>       create      test/controllers/games_controller_test.rb
>       invoke    helper
>       create      app/helpers/games_helper.rb
>       invoke      test_unit
>       create        test/helpers/games_helper_test.rb
>       invoke    jbuilder
>       create      app/views/games/index.json.jbuilder
>       create      app/views/games/show.json.jbuilder
>       invoke  assets
>       invoke    coffee
>       create      app/assets/javascripts/games.js.coffee
>       invoke    scss
>       create      app/assets/stylesheets/games.css.scss
>       invoke  scss
>       create    app/assets/stylesheets/scaffolds.css.scss

যদি আমরা এর পরে মাইগ্রেশন চালিয়ে যাই তবে আমাদের প্রথমে মাইগ্রেশনকে রোলব্যাক করতে হবে কারণ স্ক্যাফোल्ड মোছার ফলে মাইগ্রেশন ফাইলটিও মুছে ফেলা হবে এবং আমরা সেই মাইগ্রেশনটি ফিরিয়ে নিতে সক্ষম হব না।

যদি আমরা মাইগ্রেশনটি চালিয়েছি:

rake db:rollback

এবং এর পরে আমরা নিরাপদে এই কমোডের দ্বারা মূর্তিটি সরিয়ে ফেলতে পারি।

rails d scaffold Game

এই কমান্ডটি আপনার প্রকল্পের স্ক্যাফোल्ड দ্বারা তৈরি সমস্ত ফাইল সরিয়ে ফেলবে।


0

আপনি যে কোনও সময় দৌড়াবেন rails g, আপনি rails dযা তৈরি করেছেন তা সরাতে আপনি এটি চালিয়ে (ধ্বংস) করে বিপরীত করতে পারেন । আপনি যদি ইতিমধ্যে rake db:migrateদৌড়ে থাকেন rake db:rollbackতবে ধ্বংস করার আগে আপনাকে দৌড়াতে হবে :)


0

কেস 1: আপনি যদি কেবলমাত্র এই কমান্ডটি স্ক্যাফোল্ড তৈরি করতে চালান -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

Ex - rails generate scaffold User name:string address:text

তবে এখন পর্যন্ত আপনি স্থানান্তরের মতো কোনও আদেশ চালান নি

rake db:migrate

তাহলে আপনার কেবল এই আদেশটি চালানো উচিত -

rails destroy scaffold User name:string address:text

কেস 2: আপনি যদি ইতিমধ্যে নীচের কমান্ডগুলি দ্বারা (স্ক্যাফোल्ड এবং মাইগ্রেশন) চালিয়ে যান তবে -

rails generate scaffold User name:string address:text

rake db:migrate 

তারপরে আপনার প্রথম রোলব্যাক মাইগ্রেশন কমান্ড চালানো উচিত তারপরে নীচের মতো স্ক্যাফোোল্ডটি ধ্বংস করুন -

rake db:rollback

rails destroy scaffold User name:string address:text

সুতরাং এই পদ্ধতিতে, আমরা ভারাটিকে পূর্বাবস্থায় ফেরাতে পারি। এছাড়াও আমরা ব্যবহার করতে পারেন জন্য ধ্বংস এবং জন্য উৎপন্ন একটি শর্টকাট হিসাবে।


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