Debido a algunos problemas de implementación, dejé de rastrear schema.rb en git. De alguna manera, he rellenado esto y, en algún momento, mi archivo schema.rb ha desaparecido.
¿Hay alguna forma de regenerar schema.rb desde la base de datos o desde las migraciones? Preferiría no perder los datos existentes.
ruby-on-rails
ruby-on-rails-3
git
puntilla
fuente
fuente
rake db:schema:dump
de rails 2.0Cuidado,
volcará el esquema actual de la base de datos DESDE la base de datos . Esto significa que si realizó algún cambio en sus migraciones, NO se reflejará en el archivo schema.rb que no es lo que desea IMO.
Si desea volver a crear el esquema a partir de las migraciones, haga lo siguiente:
fuente
rake db:schema:dump
comando.Creo que esto todavía es válido en Rails 3: regenera el schema.rb de la base de datos.
fuente
RAILS 5 Way:
o si encuentras Gem :: LoadError entonces:
Nota:
en los carriles 5, se recomienda que la tarea se generan / ejecutada utilizando
rails
en lugar derake
, esto es sólo para recordar, carriles generada tarea de la extensión se.rake
verá enlib/tasks/myTask.rake
. lo que significa que esta tarea también se puede ejecutar anteponiendorake
.fuente
Si te regeneras
schema.rb
localmente, deberías estar bien. Simplemente contiene una representación de la estructura de las tablas de su base de datos. Los datos en sí no están contenidos en este archivo.Para regenerar su
schema.rb
archivo, ejecute:¡Entonces simplemente confirme el nuevo
schema.rb
archivo y debería estar en buena forma!fuente
Directamente desde el archivo schema.rb:
Por lo tanto, NO haga la sugerencia de
rake db:migrate
, que se sugirió en la respuesta de menor calificación al momento de escribir este artículo.fuente
También tuve un problema similar en el que mi antiguo esquema no se actualizaba incluso si eliminaba la migración.
Entonces, lo que hice fue descartar todas las tablas existentes en la base de datos y migrarlas nuevamente. Luego ejecutar el comando "db: schema: load" me dio un nuevo schema.rb.
fuente