Undo andaime em Rails
-
12-09-2019 - |
Pergunta
Existe alguma maneira de 'desfazer' os efeitos de um comando de andaime em Rails?
Solução
Primeiro , se você já tiver executado as migrações gerado pelo comando scaffold
, você tem que executar uma reversão em primeiro lugar.
rake db:rollback
Você pode criar andaimes usando:
rails generate scaffold MyFoo
(ou similar), e você pode destruir / undo -lo usando
rails destroy scaffold MyFoo
Isso irá apagar todos os arquivos criados pelo generate
, mas não quaisquer alterações adicionais que você pode ter feito manualmente.
Outras dicas
Rishav Rastogi é certo, e com trilhos de 3,0 ou superior a:
rails generate scaffold ...
rails destroy scaffold ...
Você pode desfazer o que você fez com o
rails generate xxx
Por
rails destroy xxx
Por exemplo, este aplica-se geradores para a migração, andaime, modelo, etc ...
Se você quiser apenas para ver os arquivos de um gerador irá criar, você pode passar a opção gerador --pretend ou -p.
A melhor maneira é:
destroy rake db: rake db:rollback
Para Andaime:
rails destroy scaffold Name_of_script
rails d scaffold <scaffoldname>
Além disso, certifique-se de desfazer a migração você feito por rollback ou para uma versão particular.
pela primeira vez, você pode verificá-lo a migração do banco de dados se você tiver gerar cadafalso. você deve destruí-los para limpar seu banco de dados
rake db:rollback
então
rails d scaffold
Para gerar andaimes:
rails generate scaffold xyz
Para reverter andaimes:
rails destroy scaffold xyz
Rails destruir nome
rake db:rollback
Para andaime de geração em trilhos -
rails generate scaffold MODEL_GOES_HERE
Para andaime desfazer em trilhos -
rails destroy scaffold MODEL_GOES_HERE
você precisa migrações reverter muito depois de destruir andaime demasiado
rails destroy scaffold 'scaffoldname'
rake db:rollback
Assim, processo que você deve seguir para desfazer andaime em trilhos 4. Executar comando como abaixo:
-
rails d scaffold FooBar
-
rake db:rollback
se you_had_run_rake db:migrate
depois de criar acima andaime?
É isso aí!
Felicidades!
Recomendar reversão Primeiro, escreva o seu Terminal.
rake db:rollback
Adicionar destruir andaime (o 'd' significa 'destruir')
rails d scaffold name_of_scaffold
Aproveite o seu código.
Use esta ??p>
rails d scaffold MODEL_NAME
rake db:rollback
Primeiro você terá que fazer o rake db: rollback para destruir a mesa
Se você já tiver executado rake db: migrate e, em seguida, você pode executar
trilhos d andaime Modelo
você precisa reverter as migrações primeiro fazendo rake db: rollback se alguma E, em seguida, destruir o andaime por
rails d scaffold foo
Sim, o próprio scaffold
e todas as coisas que amalgamar-lo.
O comando destroy
é o oposto do generate
e irá desfazer um. Basta passar-lhe o nome da mesma forma fez com generate
e ele vai ser limpo de seu projeto:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Para gerar o scaffold:
rails generate scaffold abc
Para reverter esta scaffold:
rails destroy scaffold abc
Se você executar a migração para ele apenas rollback
rake db:rollback STEP=1
provedor outra solução baseada em git
iniciar um novo projeto
rails new project_name
cd project_name
initialize git
git init
git commit -m "initial commit"
criar um andaime
rails g scaffold MyScaffold
rake db:migrate
reverter o cadafalso
rake db:rollback
git reset --hard
git clean -f -d
trilhos [opção] andaime scaffold_name
Opção
g generate
d destroy
Se você
rails g scaffold myFoo
Em seguida, revertê-la de volta usando
rails d scaffold MyFoo
Quando geramos andaime, seguintes arquivos serão criados:
Comando: rails generate scaffold Game
Os arquivos criados:
> 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 tivermos executar a migração após isso, então nós temos que reverter a migração primeiro como a supressão do andaime irá remover o arquivo de migração também e nós não será capaz de reverter essa migração.
Incase temos executar a migração:
rake db:rollback
e depois disso podemos remover com segurança do andaime por este commad.
rails d scaffold Game
Este comando irá remover todos os arquivos criados pelo andaime em seu projeto.
Toda vez que você executar rails g
, você pode inverter-lo executando rails d
(destruir) para remover o que você gerou. Se você já tiver executado rake db:migrate
, você precisará executar rake db:rollback
antes de destruir:)
Caso 1: Se você executar apenas este comando para gerar andaime -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
Mas até agora você não executar qualquer comando para a migração como
rake db:migrate
então você deve precisar executar apenas este comando como -
rails destroy scaffold User name:string address:text
Caso 2: Se você já executado (Andaime e Migração) por seguir os comandos como -
rails generate scaffold User name:string address:text
rake db:migrate
Em seguida, você precisa executar primeiro comando de migração rollback depois destruir andaime como abaixo -
rake db:rollback
rails destroy scaffold User name:string address:text
Assim Desta forma, podemos desfazer andaimes. Também podemos usar d destruir e g gerar como um atalho.
rails g scaffold MyFoo
Para a produção e
rails d scaffold MyFoo
para remover