पटरियों में पूर्ववत करें


493

क्या रेल में पाड़ कमांड के प्रभाव को 'पूर्ववत' करने का कोई तरीका है?


4
रेल स्कोफोल्ड xxx को नष्ट कर देती है
रॉबिन गर्ग

1
रेल 5 में: के साथ पाड़ उत्पन्न: $ पटरियों पाड़ <नाम> उत्पन्न करते हैं। यदि आप अपनी फ़ाइलों को माइग्रेट करते हैं, तो रोलबैक करें: $ रेक db: रोलबैक । नष्ट या पाड़ के साथ पूर्ववत करें: $ रेल पाड़ को नष्ट करें <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
यदि आप रेक डीबी चलाते हैं: माइग्रेट ने उसके बाद कुछ अन्य माइग्रेशन किए, तो यह मचान को "नष्ट" करने से पहले टेबल को नष्ट करने के लिए माइग्रेशन बनाने के लिए समझ में आता है। तो कुछ ऐसा करें जैसे रेल g माइग्रेशन DropMyFoos और फिर माइग्रेशन फ़ाइल खोलें और टेबल ड्रॉप करने के लिए कोड जोड़ें। इस माइग्रेशन को चलाएं और फिर नष्ट मचान को चलाएं।
विक्रम शर्मा

यह भी ध्यान रखें कि यह my_foo के लिए व्यू फ़ोल्डर को हटा देगा, भले ही आपके पास वहां अतिरिक्त फाइलें हों।
एंड्रयू के

167

रिशव रस्तोगी सही है, और रेल के साथ 3.0 या उससे अधिक है:

रेल पाड़ पैदा करते हैं ...
रेल पाड़ को नष्ट ...

8
@femi टेबल को रेक के साथ बनाया गया था। इसे हटाने का सबसे अच्छा तरीका rake db:rollbackपहले चल रहा है rails destroy scaffoldया अगर यह आखिरी नहीं है तो आपने इसे रेक किया था, db:migrate:down VERSION=20080906120000आप इसके नाम से पहले संख्या को db / माइग्रेट में पा सकते हैं
ट्रैविस पेसेट्टो

40

आपने जो कुछ भी किया, उसे पूर्ववत कर सकते हैं

rails generate xxx

द्वारा

rails destroy xxx

उदाहरण के लिए यह जनरेटर को माइग्रेशन, मचान, मॉडल ... आदि पर लागू होता है


13

यदि आप केवल फाइलें देखना चाहते हैं तो एक जेनरेटर बनाएगा जिससे आप जेनरेटर - व्याख्या या पी विकल्प पास कर सकते हैं।


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

तो, प्रक्रिया आप रेल में मचान में पूर्ववत करने के लिए पालन करना चाहिए। नीचे के रूप में कमांड चलाएँ:

  1. rails d scaffold FooBar
  2. rake db:rollbackयदि आप rake db:migrateपाड़ से ऊपर बनाने के बाद _____

बस!

चीयर्स!


2

रोलबैक की सिफारिश करें सबसे पहले, अपने टर्मिनल में टाइप करें।

rake db:rollback

नष्ट पाड़ जोड़ें ('डी' 'नष्ट' के लिए खड़ा है)

rails d scaffold name_of_scaffold

अपने कोड का आनंद लें।



1

सबसे पहले आपको रेक db करना होगा :
यदि आप पहले ही रेक db चला चुके हैं तो टेबल को नष्ट करने के लिए रोलबैक करें : माइग्रेट करें और फिर आप चला सकते हैं

रेल मचान मॉडल


1

आपको पहले रेक db करके माइग्रेशन रोलबैक करने की आवश्यकता है: यदि कोई है तो रोलबैक करें और फिर पाड़ को नष्ट करें

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

रेल [विकल्प] मचान scaffold_name

विकल्प

g    generate
d    destroy

यदि तुम करो

rails g  scaffold myFoo

फिर इसका उपयोग करके वापस उल्टा करें

rails d scaffold MyFoo

0

जब हम पाड़ पैदा करते हैं, तो निम्नलिखित फाइलें बनाई जाएंगी:

कमान: 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

तो इस तरीके से, हम मचान को पूर्ववत कर सकते हैं। इसके अलावा हम उपयोग कर सकते हैं के लिए नष्ट कर और जी के लिए उत्पन्न एक शॉर्टकट के रूप।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.