2010-04-15 7 views

risposta

16

È possibile utilizzare mysql direttamente:

mysqldump app_development | mysql app_test 
+0

se non si sta usando mysql, @ j0k ha la migliore risposta finora con: rake db: test: clone && rake db: seed RAILS_ENV = 'test' – Krut

12

È possibile utilizzare:

rake db:test:clone 

Per copiare il db di sviluppo in prova.

+13

Non funziona affatto per me. La struttura viene creata, ma nessun record viene copiato. È questo il compito di copiare i dati? La descrizione non sta puntando direttamente. – mdrozdziel

+1

Non ha funzionato per me. Il database di test sembra vuoto ... –

+9

db: test: clone è una combinazione di db: schema: dump e db: test: prepara e in realtà non copia i dati * – JohnMetta

4

Se si desidera solo per clonare il DB di sviluppo nella sua interezza, cosa c'è di sbagliato con solo copiando il development.sqlite3 e rinominandolo test.sqlite3? È possibile automatizzare il processo impostando un file batch (o il suo equivalente sul sistema operativo) che è possibile eseguire dalla riga di comando.

Questo funzionerà localmente, ma ho appena realizzato che si potrebbe pensare a un ambiente non locale, nel qual caso probabilmente non lo farà.

3

Un metodo alternativo se si utilizzano i semi (db/seeds.rb)

In primo luogo, aggiungere un'attività rake ad esempio per lib/task/test_seed.rake con questo codice:

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

Poi ogni volta che hai cambiato la struttura/contenuto del database attraverso la migrazione e semi, è possibile eseguire

rake:db:test:prepare 

per copiare i dati dello schema e del seme.

Quindi sarebbero i passaggi completi:

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

Se si esegue 'rake db: test: prepare' dopo' rake db: seed 'cancellerà i tuoi dati seme =] – professormeowingtons

5

Per tutti i database:

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

op, ho pensato che volessi popolare il database di test con il file seed.rb. – drr

+2

aggiorna questo per quello che vuole? – dove

3

Con Postgres, copiare il database in questo modo:

CREATE newdb DATABASE CON MODELLO originaldb Dbuser PROPRIETARIO;

Problemi correlati