2010-04-15 12 views

Respuesta

16

Puede utilizar MySQL directamente:

mysqldump app_development | mysql app_test 
+0

si no está usando mysql, @ j0k tiene la mejor respuesta hasta ahora con: rake db: test: clone && rake db: seed RAILS_ENV = 'test' – Krut

12

Se puede utilizar:

rake db:test:clone 

Para copiar el PP en el desarrollo de pruebas.

+13

No funciona para mí en absoluto. Se crea la estructura, pero no se copian registros. ¿Es esa tarea copiar los datos en absoluto? La descripción no apunta directamente a eso. – mdrozdziel

+1

No funcionó para mí. La base de datos de prueba parece estar vacía ... –

+9

db: test: clone es una combinación de db: schema: dump y db: test: prepare y en realidad no copia los * datos * – JohnMetta

4

Si lo que desea es clonar la base de datos de desarrollo en su totalidad, lo que está mal con sólo copiar el development.sqlite3 y el cambio de nombre test.sqlite3? Puede automatizar el proceso configurando un archivo por lotes (o su equivalente en su SO) que pueda ejecutar desde la línea de comando.

Esto funcionará localmente, pero me acabo de dar cuenta de que podría estar pensando en un entorno no local, en cuyo caso probablemente no sea así.

3

Un método alternativo si utiliza semillas (db/seeds.rb)

En primer lugar, añadir una tarea rake, por ejemplo, a lib/tareas/test_seed.rake con este código:

namespace :db do 
    namespace :test do 
    task :prepare => :environment do 
     Rake::Task["db:seed"].invoke 
    end 
    end 
end 

Entonces cada vez que cambie la estructura/contenido de su base de datos a través de la migración y las semillas, puede ejecutar

rake:db:test:prepare 

Para copiar el esquema y los datos de inicialización.

Así que los pasos completos sería:

rake db:migrate 
rake db:seed 
rake db:test:prepare 
+0

Si ejecuta 'rake db: test: prepare' after' rake db: seed 'eliminará tus datos de inicialización =] – professormeowingtons

5

Para todas las bases de datos:

rake db:test:clone && rake db:seed RAILS_ENV='test' 
+0

ops, pensé que querías rellenar la base de datos de prueba con el archivo seed.rb. – drr

+2

actualizar esto para lo que él quiere? – dove

3

Con Postgres, copiar la base de datos de este modo:

CREAR newdb BASE DE DATOS CON originaldb PLANTILLA PROPIETARIO dbuser;

Cuestiones relacionadas