Esiste un modo per "annullare" gli effetti di un comando impalcatura in Rails?
Esiste un modo per "annullare" gli effetti di un comando impalcatura in Rails?
Risposte:
Innanzitutto , se hai già eseguito le migrazioni generate dal scaffold
comando, devi prima eseguire un rollback.
rake db:rollback
È possibile creare impalcature utilizzando:
rails generate scaffold MyFoo
(o simile) e puoi distruggerlo / annullarlo usando
rails destroy scaffold MyFoo
Ciò eliminerà tutti i file creati da generate
, ma non eventuali modifiche aggiuntive che potresti aver apportato manualmente.
rake db:rollback
prima di distruggere il tuo patibolo. Ciò distruggerà / eliminerà la tabella se non vi è altra migrazione tranne la migrazione dell'impalcatura prima di essa.
git status
E / o git diff
, per vedere se il comando destro non ha perso nulla.
Rishav Rastogi ha ragione e con le rotaie 3.0 o successive è:
le rotaie generano impalcature ...
le rotaie distruggono l'impalcatura ...
rake db:rollback
prima rails destroy scaffold
o se non è l'ultimo che hai fatto rastrellare db:migrate:down VERSION=20080906120000
puoi trovare il numero prima del suo nome in db / migrate
Puoi annullare qualunque cosa tu abbia fatto
rails generate xxx
Di
rails destroy xxx
Ad esempio, questo vale per i generatori di migrazione, impalcatura, modello ... ecc
Se vuoi solo vedere i file creati da un generatore puoi passare l'opzione generatore --pretend o -p.
Il modo migliore è:
destroy rake db: rake db:rollback
Per impalcatura:
rails destroy scaffold Name_of_script
per la prima volta, puoi verificare la migrazione del tuo database se hai generato scaffold. è necessario distruggerli per ripulire il database
rake db:rollback
poi
rails d scaffold
Per la generazione di impalcature su binari -
rails generate scaffold MODEL_GOES_HERE
Per annullare l'impalcatura nelle guide -
rails destroy scaffold MODEL_GOES_HERE
rails g
e rails d
.
è necessario ripristinare anche le migrazioni dopo aver distrutto il patibolo
rails destroy scaffold 'scaffoldname'
rake db:rollback
Quindi, Processo che dovresti seguire per annullare l'impalcatura nei binari 4. Esegui il comando come di seguito:
rails d scaffold FooBar
rake db:rollback
se you_had_run_ rake db:migrate
dopo aver creato sopra l'impalcatura?Questo è tutto!
Saluti!
Consiglia il rollback Per prima cosa, digita il tuo Terminale.
rake db:rollback
Aggiungi distruggere impalcatura (la 'd' sta per 'distruggere')
rails d scaffold name_of_scaffold
Goditi il tuo codice.
Per prima cosa dovrai eseguire il rake db: rollback per distruggere la tabella
se hai già eseguito rake db: migrate e quindi puoi eseguire
binari d modello impalcatura
Sì, lo scaffold
stesso e tutte le cose che lo uniscono.
Il destroy
comando è l'opposto di generate
e ne annullerà uno. Basta passare il nome nello stesso modo in cui è stato generate
e verrà rimosso dal tuo progetto:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Per generare l'impalcatura:
rails generate scaffold abc
Per ripristinare questo scaffold:
rails destroy scaffold abc
Se hai eseguito la migrazione per il solo rollback
rake db:rollback STEP=1
fornire un'altra soluzione basata su git
avviare un nuovo progetto
rails new project_name
cd project_name
inizializza git
git init
git commit -m "initial commit"
creare un'impalcatura
rails g scaffold MyScaffold
rake db:migrate
rollback dell'impalcatura
rake db:rollback
git reset --hard
git clean -f -d
Quando generiamo scaffold, verranno creati i seguenti file:
Comando: rails generate scaffold Game
File creati:
> 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
Se abbiamo eseguito la migrazione dopo questo, allora dobbiamo prima ripristinare la migrazione poiché l'eliminazione di scaffold rimuoverà anche il file di migrazione e non saremo in grado di ripristinare tale migrazione.
Nel caso in cui abbiamo eseguito la migrazione:
rake db:rollback
e dopo questo possiamo rimuovere in sicurezza il ponteggio da questo commad.
rails d scaffold Game
Questo comando rimuoverà tutti i file creati dallo scaffold nel progetto.
Caso 1: se si esegue solo questo comando per generare scaffold -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
ma fino ad ora non hai eseguito alcun comando per migrazione come
rake db:migrate
quindi dovresti eseguire solo questo comando come -
rails destroy scaffold User name:string address:text
Caso 2: se si esegue già (Scaffold e Migration) con i seguenti comandi come -
rails generate scaffold User name:string address:text
rake db:migrate
Quindi dovresti eseguire il primo comando di migrazione rollback, quindi distruggere lo scaffold come di seguito:
rake db:rollback
rails destroy scaffold User name:string address:text
Quindi, in questo modo, possiamo annullare le impalcature. Inoltre possiamo usare d per distruggere e g per generare come scorciatoia.
rails g scaffold MyFoo
per la generazione e
rails d scaffold MyFoo
per la rimozione