¿Hay alguna forma de 'deshacer' los efectos de un comando de andamio en Rails?
¿Hay alguna forma de 'deshacer' los efectos de un comando de andamio en Rails?
Respuestas:
Primero , si ya ha ejecutado las migraciones generadas por el scaffold
comando, primero debe realizar una reversión.
rake db:rollback
Puede crear andamios usando:
rails generate scaffold MyFoo
(o similar), y puedes destruirlo / deshacerlo usando
rails destroy scaffold MyFoo
Eso eliminará todos los archivos creados por generate
, pero no los cambios adicionales que haya realizado manualmente.
rake db:rollback
antes de destruir tu andamio. Esto destruirá / descartará la tabla si no hay otra migración, excepto la migración del andamio anterior.
git status
Y / o git diff
, para ver si el comando de destrucción omitió algo.
Rishav Rastogi tiene razón, y con rieles 3.0 o superior es:
los rieles generan andamios ...
los rieles destruyen el andamio ...
rake db:rollback
antes rails destroy scaffold
o si no es el último que rakeó db:migrate:down VERSION=20080906120000
, puede encontrar el número antes de su nombre en db /
Puedes deshacer lo que hiciste con
rails generate xxx
Por
rails destroy xxx
Por ejemplo, esto aplica generadores a la migración, andamios, modelos ... etc.
Si solo desea ver los archivos que creará un generador, puede pasar la opción generador --pretender o -p.
La mejor manera es:
destroy rake db: rake db:rollback
Para andamio:
rails destroy scaffold Name_of_script
por primera vez, puede verificar la migración de su base de datos si ha generado un andamio. debes destruirlos para limpiar tu base de datos
rake db:rollback
entonces
rails d scaffold
Para generar andamios en rieles -
rails generate scaffold MODEL_GOES_HERE
Para deshacer andamios en rieles -
rails destroy scaffold MODEL_GOES_HERE
rails g
y rails d
.
necesita revertir las migraciones también después de destruir el andamio también
rails destroy scaffold 'scaffoldname'
rake db:rollback
Entonces, el proceso que debe seguir para deshacer el andamio en los rieles 4. Ejecute el comando de la siguiente manera:
rails d scaffold FooBar
rake db:rollback
si you_had_run_ rake db:migrate
después de crear el andamio anterior?¡Eso es!
¡Salud!
Recomiende la reversión Primero, ingrese su Terminal.
rake db:rollback
Agregar andamio de destrucción (la 'd' significa 'destruir')
rails d scaffold name_of_scaffold
Disfruta tu código.
Primero tendrá que hacer el rake db: rollback para destruir la tabla
si ya ha ejecutado rake db: migrate y luego puede ejecutar
rieles d modelo de andamio
Sí, el scaffold
mismo y todas las cosas que lo amalgaman.
El destroy
comando es lo opuesto generate
y deshará uno. Simplemente pásele el nombre de la misma manera que lo hizo generate
y se eliminará de su proyecto:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Para generar el andamio:
rails generate scaffold abc
Para revertir este andamio:
rails destroy scaffold abc
Si ha ejecutado la migración, simplemente retroceda
rake db:rollback STEP=1
proveedor otra solución basada en git
comenzar un nuevo proyecto
rails new project_name
cd project_name
inicializar git
git init
git commit -m "initial commit"
crear un andamio
rails g scaffold MyScaffold
rake db:migrate
deshacer el andamio
rake db:rollback
git reset --hard
git clean -f -d
Cuando generemos un andamio, se crearán los siguientes archivos:
Mando: rails generate scaffold Game
Archivos creados:
> 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
Si hemos ejecutado la migración después de esto, primero tenemos que revertir la migración ya que la eliminación de scaffold también eliminará el archivo de migración y no podremos revertir esa migración.
En caso de que hayamos ejecutado la migración:
rake db:rollback
y después de esto podemos eliminar el andamio de forma segura con este comando.
rails d scaffold Game
Este comando eliminará todos los archivos creados por el andamio en su proyecto.
Caso 1: si ejecuta solo este comando para generar un andamio:
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
pero hasta ahora no ejecutó ningún comando para la migración como
rake db:migrate
entonces deberías necesitar ejecutar solo este comando como -
rails destroy scaffold User name:string address:text
Caso 2: si ya ejecuta (Scaffold and Migration) con los siguientes comandos como:
rails generate scaffold User name:string address:text
rake db:migrate
Entonces debería ejecutar el primer comando de migración de reversión y luego destruir el andamio como se muestra a continuación:
rake db:rollback
rails destroy scaffold User name:string address:text
De esta manera, podemos deshacer el andamiaje. También podemos utilizar d para destruir y g para generar como un acceso directo.
rails g scaffold MyFoo
para generar y
rails d scaffold MyFoo
para quitar