রেলগুলিতে স্ক্যাফোল্ড কমান্ডের প্রভাবগুলি 'পূর্বাবস্থায়' ফেলার কোনও উপায় আছে কি?
রেলগুলিতে স্ক্যাফোল্ড কমান্ডের প্রভাবগুলি 'পূর্বাবস্থায়' ফেলার কোনও উপায় আছে কি?
উত্তর:
প্রথমত , আপনি যদি ইতিমধ্যে scaffold
কমান্ড দ্বারা উত্পন্ন স্থানান্তরগুলি চালিত করেন তবে আপনাকে প্রথমে রোলব্যাক করতে হবে।
rake db:rollback
আপনি ব্যবহার করে ভারা তৈরি করতে পারেন:
rails generate scaffold MyFoo
(বা অনুরূপ), এবং আপনি এটি ব্যবহার করে ধ্বংস / পূর্বাবস্থায়িত করতে পারেন
rails destroy scaffold MyFoo
এটি দ্বারা নির্মিত সমস্ত ফাইল মুছে ফেলা হবে generate
, তবে আপনি ম্যানুয়ালি করা কোনও অতিরিক্ত পরিবর্তন নয়।
rake db:rollback
আপনি নিজের ভারাটিকে ধ্বংস করার আগে ভুলে যাবেন না । এর আগে স্ক্যাফোোল্ডের মাইগ্রেশন ব্যতীত অন্য কোনও মাইগ্রেশন না থাকলে এটি টেবিলটি নষ্ট / ছাড়বে।
git status
এবং / অথবা git diff
, ডায়মান্ট কমান্ডটি কিছু মিস করেছে কিনা তা দেখুন।
Isষভ রাস্তোগি ঠিক, এবং রেল সহ 3.0 বা তার বেশি:
রেলগুলি ভারা তৈরি করে ...
রেল পাথর নষ্ট করে ...
rake db:rollback
rails destroy scaffold
db:migrate:down VERSION=20080906120000
আপনি যা করেছেন তা আপনি পূর্বাবস্থায় ফেলাতে পারেন
rails generate xxx
দ্বারা
rails destroy xxx
উদাহরণস্বরূপ, এটি মাইগ্রেশন, স্ক্যাফোल्ड, মডেল ... ইত্যাদিতে জেনারেটর প্রয়োগ করে
আপনি যদি কেবল একটি জেনারেটর তৈরি করা ফাইলগুলি দেখতে চান তবে আপনি জেনারেটর - প্রিপ্রেড বা -p বিকল্পটি পাস করতে পারেন।
সেরা উপায় হ'ল:
destroy rake db: rake db:rollback
স্ক্যাফোোল্ডের জন্য:
rails destroy scaffold Name_of_script
প্রথমবারের জন্য, আপনি যদি স্ক্যাফোल्ड তৈরি করে থাকেন তবে আপনি ডাটাবেস স্থানান্তর পরীক্ষা করতে পারেন। আপনার ডেটাবেস পরিষ্কার করার জন্য আপনাকে অবশ্যই তাদের ধ্বংস করতে হবে
rake db:rollback
তারপর
rails d scaffold
রেলপথে স্ক্যাফোল্ড তৈরির জন্য -
rails generate scaffold MODEL_GOES_HERE
রেলগুলিতে পূর্বাবস্থায় ফিরে যাওয়ার জন্য -
rails destroy scaffold MODEL_GOES_HERE
rails g
এবং rails d
।
খুব ভাস্কর্যটি ধ্বংস করার পরেও আপনাকে মাইগ্রেশন ফিরিয়ে নিতে হবে
rails destroy scaffold 'scaffoldname'
rake db:rollback
সুতরাং, প্রক্রিয়াটি আপনার রেলগুলিতে ভাসমান পূর্বাবস্থায় ফেরাতে অনুসরণ করা উচিত below
rails d scaffold FooBar
rake db:rollback
আপনি যদি_হাদ_রুন_ rake db:migrate
উপরের ভারা বানানোর পরে?এটাই!
চিয়ার্স!
রোলব্যাকের সুপারিশ করুন প্রথমে আপনার টার্মিনালটি টাইপ করুন।
rake db:rollback
ধ্বংস স্ক্যাফোল্ড যুক্ত করুন ('ডি' 'ধ্বংস' এর জন্য দাঁড়িয়েছে)
rails d scaffold name_of_scaffold
আপনার কোড উপভোগ করুন।
প্রথমে আপনাকে রেক ডিবি করতে হবে : টেবিলটি নষ্ট করার জন্য রোলব্যাক করুন
যদি আপনি ইতিমধ্যে রেক ডিবি চালিয়ে যান: মাইগ্রেশন করুন এবং তারপরে আপনি চালাতে পারবেন
রেল d ভারা মডেল
হ্যাঁ, scaffold
নিজেই এবং সমস্ত জিনিস যা এটি একত্রিত করে।
destroy
কমান্ড বিপরীত generate
এবং এক পূর্বাবস্থা হবে। নামটি ঠিক একইভাবে দিয়ে দিন generate
এবং এটি আপনার প্রকল্প থেকে সরিয়ে দেওয়া হবে:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
স্ক্যাফোল্ড তৈরি করতে:
rails generate scaffold abc
এই ভাস্কর্যটি ফিরিয়ে আনতে:
rails destroy scaffold abc
আপনি যদি এটির জন্য মাইগ্রেশনটি চালিয়ে যান তবে কেবল রোলব্যাক করুন
rake db:rollback STEP=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
যখন আমরা স্ক্যাফোল্ড তৈরি করি, নিম্নলিখিত ফাইলগুলি তৈরি করা হবে:
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
এই কমান্ডটি আপনার প্রকল্পের স্ক্যাফোल्ड দ্বারা তৈরি সমস্ত ফাইল সরিয়ে ফেলবে।
কেস 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
সুতরাং এই পদ্ধতিতে, আমরা ভারাটিকে পূর্বাবস্থায় ফেরাতে পারি। এছাড়াও আমরা ব্যবহার করতে পারেন ঘ জন্য ধ্বংস এবং ছ জন্য উৎপন্ন একটি শর্টকাট হিসাবে।
rails g scaffold MyFoo
উত্পাদনের জন্য এবং
rails d scaffold MyFoo
অপসারণ জন্য