¿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 scaffoldcomando, 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:rollbackantes de destruir tu andamio. Esto destruirá / descartará la tabla si no hay otra migración, excepto la migración del andamio anterior.
git statusY / 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:rollbackantes rails destroy scaffoldo 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 gy 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 FooBarrake db:rollbacksi you_had_run_ rake db:migratedespué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 scaffoldmismo y todas las cosas que lo amalgaman.
El destroycomando es lo opuesto generatey deshará uno. Simplemente pásele el nombre de la misma manera que lo hizo generatey 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