Existe alguma maneira de 'desfazer' os efeitos de um comando de andaime no Rails?
Existe alguma maneira de 'desfazer' os efeitos de um comando de andaime no Rails?
Respostas:
Primeiro , se você já executou as migrações geradas pelo scaffold
comando, precisará executar uma reversão primeiro.
rake db:rollback
Você pode criar andaimes usando:
rails generate scaffold MyFoo
(ou similar) e você pode destruí- lo / desfazê- lo usando
rails destroy scaffold MyFoo
Isso excluirá todos os arquivos criados por generate
, mas não as alterações adicionais que você possa ter feito manualmente.
rake db:rollback
antes de destruir o seu andaime. Isso destruirá / descartará a tabela se não houver outra migração, exceto a migração do andaime antes dela.
git status
e / ou git diff
, para ver se o comando destroy perdeu alguma coisa.
Rishav Rastogi está certo e, com os trilhos 3.0 ou superior, é:
trilhos geram andaimes ...
trilhos destruir andaime ...
rake db:rollback
antes rails destroy scaffold
ou se não é a última que você fez ancinho db:migrate:down VERSION=20080906120000
pode encontrar o número antes de seu nome no db / migrate
Você pode desfazer o que fez com
rails generate xxx
De
rails destroy xxx
Por exemplo, isso aplica geradores à migração, andaime, modelo ... etc.
Se você quiser apenas ver os arquivos que um gerador criará, você pode passar a opção --pretend ou -p do gerador.
A melhor maneira é:
destroy rake db: rake db:rollback
Para o andaime:
rails destroy scaffold Name_of_script
pela primeira vez, você pode verificar a migração do banco de dados se tiver gerado andaimes. você deve destruí-los para limpar seu banco de dados
rake db:rollback
então
rails d scaffold
Para gerar andaimes em trilhos -
rails generate scaffold MODEL_GOES_HERE
Para desfazer andaimes em trilhos -
rails destroy scaffold MODEL_GOES_HERE
rails g
e rails d
.
você também precisa reverter as migrações depois de destruir o andaime
rails destroy scaffold 'scaffoldname'
rake db:rollback
Portanto, processo que você deve seguir para desfazer andaimes nos trilhos 4. Execute o comando como abaixo:
rails d scaffold FooBar
rake db:rollback
se you_had_run_ rake db:migrate
depois de criar o andaime acima?É isso aí!
Felicidades!
Recomende a reversão Primeiro, digite seu Terminal.
rake db:rollback
Adicionar andaime destroy (o 'd' significa 'destroy')
rails d scaffold name_of_scaffold
Aproveite o seu código.
Primeiro, você terá que fazer o rake db: rollback para destruir a tabela,
se você já executou o rake db: migrate e poderá executar
trilhos d modelo de andaime
Sim, o scaffold
próprio e todas as coisas que o fundem.
O destroy
comando é o oposto generate
e desfaz um. Apenas passe o nome da mesma maneira que generate
ele fez e será removido do seu projeto:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Para gerar o andaime:
rails generate scaffold abc
Para reverter este andaime:
rails destroy scaffold abc
Se você executou a migração, basta reverter
rake db:rollback STEP=1
fornecedor outra solução baseada em git
iniciar um novo projeto
rails new project_name
cd project_name
inicialize o git
git init
git commit -m "initial commit"
criar um andaime
rails g scaffold MyScaffold
rake db:migrate
reverter o andaime
rake db:rollback
git reset --hard
git clean -f -d
Quando geramos o andaime, os seguintes arquivos serão criados:
Comando: rails generate scaffold Game
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 executarmos a migração depois disso, primeiro reverteremos a migração, pois a exclusão do andaime também removerá o arquivo de migração e não poderemos reverter essa migração.
Caso tenhamos executado a migração:
rake db:rollback
e depois disso, podemos remover com segurança o cadafalso por esta nômade.
rails d scaffold Game
Este comando removerá todos os arquivos criados pelo andaime no seu projeto.
Caso 1: se você executar apenas este comando para gerar o andaime -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
mas até agora você não executou nenhum comando para migração como
rake db:migrate
então você deve executar apenas este comando como -
rails destroy scaffold User name:string address:text
Caso 2: se você já executa (Andaime e Migração) pelos comandos abaixo, como -
rails generate scaffold User name:string address:text
rake db:migrate
Em seguida, você deve executar o primeiro comando de migração de reversão e destruir o andaime como abaixo -
rake db:rollback
rails destroy scaffold User name:string address:text
Assim, podemos desfazer andaimes. Também podemos usar d para destruir e g para gerar como um atalho.
rails g scaffold MyFoo
para gerar e
rails d scaffold MyFoo
para remover