Devido a alguns problemas de implantação, parei de rastrear schema.rb no git. De alguma forma, eu já recolhi isso e, em algum lugar do caminho, meu arquivo schema.rb desapareceu.
Existe uma maneira de regenerar schema.rb do banco de dados ou das migrações? Eu preferiria não perder os dados existentes.
rake db:schema:dump
on rails 2.0Cuidado,
irá despejar o esquema atual do banco de dados a partir do banco de dados . Isso significa que, se você fez alterações nas migrações, elas NÃO serão refletidas no arquivo schema.rb, que não é o que você deseja IMO.
Se você deseja recriar o esquema a partir das migrações, faça o seguinte:
fonte
rake db:schema:dump
comando.Eu acho que isso ainda é válido no Rails 3 - ele regenera o schema.rb do banco de dados.
fonte
TRILHOS 5 Vias:
ou se você encontrar Gem :: LoadError, então:
Nota:
no rails 5, é recomendável que a tarefa seja gerada / executada usando, em
rails
vez derake
, isso é apenas para lembrar, a tarefa gerada no rails é de extensão,.rake
consultelib/tasks/myTask.rake
. o que significa que essas tarefas também podem ser executadas anexando-asrake
.fonte
Se você regenerar
schema.rb
localmente, você deve ficar bem. Ele simplesmente mantém uma representação da estrutura de suas tabelas de banco de dados. Os dados em si não estão contidos neste arquivo.Para regenerar seu
schema.rb
arquivo, execute:Em seguida, basta confirmar o novo
schema.rb
arquivo e você estará em boa forma!fonte
Diretamente do próprio arquivo schema.rb:
Portanto, NÃO faça a sugestão de
rake db:migrate
, que foi sugerida na - no momento da redação deste texto - a resposta nominal mais baixa.fonte
Eu também tive um problema semelhante em que meu esquema antigo não era atualizado, mesmo que eu excluísse a migração.
Então, o que eu fiz foi soltar todas as tabelas existentes no banco de dados e migrá-las novamente. A execução do comando "db: schema: load" me deu um novo schema.rb.
fonte