una tabla remover rails campos campo agregar ruby-on-rails ruby-on-rails-3 rake

tabla - Purgue o vuelva a crear una base de datos de Ruby on Rails



agregar un campo a una tabla ruby on rails (18)

Actualización: Con la llegada de Rails 5, este comando será accesible a través de este comando:

rieles db: purge db: create db: migrate RAILS_ENV = prueba

A partir de la nueva versión de Rails 4.2 ahora puede ejecutar:

rake db:purge

Fuente: commit

# desc "Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases." task :purge => [:load_config] do ActiveRecord::Tasks::DatabaseTasks.purge_current end

Se pueden usar juntos como se mencionó anteriormente:

rake db:purge db:create db:migrate RAILS_ENV=test

Tengo una base de datos de desarrollo de Ruby on Rails llena de datos. Quiero borrar todo y reconstruir la base de datos. Estoy pensando en usar algo como:

rake db:recreate

es posible?


Conozco dos formas de hacer esto:

Esto restablecerá su base de datos y volverá a cargar su esquema actual con todos:

rake db:reset db:migrate

Esto destruirá su base de datos y luego la creará y luego migrará su esquema actual:

rake db:drop db:create db:migrate

Todos los datos se perderán en ambos escenarios.


Creo que la mejor manera de ejecutar este comando:

**rake db:reset** it does db:drop, db:setup rake db:setup does db:create, db:schema:load, db:seed


De acuerdo con la guía de Rails , este liner debe usarse porque se cargaría desde schema.rb lugar de volver a cargar los archivos de migración uno por uno:

rake db:reset


Debido a que en el desarrollo, siempre querrá volver a crear la base de datos, puede definir una tarea de rake en su carpeta lib / tasks así.

namespace :db do task :all => [:environment, :drop, :create, :migrate] do end end

y en la terminal correrás

rake db:all

reconstruirá su base de datos


Dependiendo de lo que quieras, puedes usar ...

rake db:create

... para construir la base de datos desde cero desde config/database.yml , o ...

rake db:schema:load

... para construir la base de datos desde cero desde su archivo schema.rb .


Desde la línea de comandos ejecutar

rake db:migrate:reset


En Rails 4, todo lo que se necesita es

$ rake db:schema:load

Eso eliminaría todo el contenido de su base de datos y recrearía el esquema de su archivo schema.rb, sin tener que aplicar todas las migraciones una por una.


Hoy he hecho algunos cambios en mi esquema de rieles. Me di cuenta de que necesitaba dos modelos adicionales en una jerarquía y algunos otros para eliminarlos. Hubo muchos pequeños cambios requeridos a los modelos y controladores.

Agregué los dos nuevos modelos y los creé usando:

rake db:migrate

Luego edité el archivo schema.rb. Quité manualmente los modelos antiguos que ya no eran necesarios, cambié el campo de clave foránea según fue necesario y simplemente lo reordené un poco para aclararlo. Eliminé todas las migraciones y luego volví a ejecutar la compilación a través de:

rake db:reset

Funcionó perfectamente. Todos los datos tienen que ser recargados, por supuesto. Rails se dio cuenta de que las migraciones habían sido eliminadas y restableció la marca de agua alta:

-- assume_migrated_upto_version(20121026094813, ["/Users/sean/rails/f4/db/migrate"])


Para eliminar una base de datos en particular, puede hacer esto en la consola de Rails:

$rails console Loading development environment 1.9.3 > ActiveRecord::Migration.drop_table(:<table_name>) 1.9.3 > exit

Y luego volver a migrar DB

$bundle exec rake db:migrate


Puede usar db:reset - para ejecutar db: drop y db: setup o db:migrate:reset - que ejecuta db: drop, db: create y db: migrate.

Depende de lo que quieras usar existe schema.rb


Puedes hacer manualmente:

rake db:drop rake db:create rake db:migrate

O simplemente rake db:reset , que ejecutará los pasos anteriores pero también ejecutará su archivo db/seeds.rb .

Un matiz adicional es que rake db:reset carga directamente desde su archivo schema.rb en lugar de ejecutar todos los archivos de migración nuevamente.

Sus datos se desvanecen en todos los casos.


Puedes usar esta siguiente línea de comando:

rake db:drop db:create db:migrate db:seed db:test:clone


Simplemente emita la secuencia de los pasos: elimine la base de datos, vuelva a crearla nuevamente, migre los datos y, si tiene semillas, siembre la base de datos:

rake db:drop db:create db:migrate db:seed

Dado que el entorno predeterminado para rake es el desarrollo , en caso de que vea la excepción en las pruebas de especificaciones, debe volver a crear la base de datos para el entorno de prueba de la siguiente manera:

RAILS_ENV=test rake db:drop db:create db:migrate

En la mayoría de los casos, la base de datos de prueba se está sembrando durante los procedimientos de prueba, por lo que no es necesario pasar la tarea de tarea db:seed . De lo contrario, deberás preparar la base de datos:

rake db:test:prepare

o

RAILS_ENV=test rake db:seed

Además, para usar la tarea de recreación , puede agregar al siguiente código de Rakefile :

namespace :db do task :recreate => [ :drop, :create, :migrate ] do if ENV[ ''RAILS_ENV'' ] !~ /test|cucumber/ Rake::Task[ ''db:seed'' ].invoke end end end

Entonces emita:

rake db:recreate


Simplemente puedes correr

rake db:setup

Se eliminará la base de datos, se creará una nueva base de datos y se completará la base de datos de semilla si creó un archivo semilla con algunos datos.



Uso el siguiente forro en la Terminal.

$ rake db:drop && rake db:create && rake db:migrate && rake db:schema:dump && rake db:test:prepare

Puse esto como un alias de shell y lo llamé volver a remigrate

Por ahora, puede "encadenar" fácilmente tareas de Rails:

$ rake db:drop db:create db:migrate db:schema:dump db:test:prepare # db:test:prepare no longer available since Rails 4.1.0.rc1+


Utilizar como

rake db:drop db:create db:migrate db:seed

Todo en una línea. Esto es más rápido ya que el entorno no se vuelve a cargar una y otra vez.

db: drop - caerá la base de datos.

db: create : creará la base de datos (host / db / password se tomará de config / database.yml)

db: migrate: ejecutará las migraciones existentes desde el directorio (db / migration / .rb) *.

db: seed : ejecutará los datos de semilla posibles desde el directorio (db / migration / seed.rb) ..

Por lo general prefiero

rake db:reset

hacer todo de una vez.

¡Aclamaciones!