2013-03-01 15 views
11

Sto provando a creare/aggiornare manualmente il file db/structure.sql a scopo di test. Ho "config.active_record.schema_format = :sql" impostato in application.rb. Mi chiedo se esiste un comando equivalente a "ActiveRecord::SchemaDumper.dump" che creerà o aggiornerà structure.sql. Ho provato structure_dump, ma l'uscita è pari a zero:Ho bisogno di aiuto per creare structure.sql per la mia app Rails

> ActiveRecord::Base.connection.structure_dump 
=> nil 

Ho provato anche il superamento di un file da quel metodo:

> File.open(File.join(Rails.root, 'db/structure.sql')) { |f| ActiveRecord::Base.connection.structure_dump() } 
=> nil 

Finora, l'unico modo sono stato in grado di generare o aggiornare db/structure.sql è eseguendo rake db: migrate. Qualche alternativa? O mi manca qualcosa quando provo ad eseguire ActiveRecord :: Base.connection.structure_dump?

risposta

23

Provare rake db:structure:dump per ricreare il db/structure.sql dal database.

+1

'rake db: schema: dump' semplicemente rigenera schema.rb. Sto cercando di ottenere structure.sql. – MothOnMars

+0

il mio male. Dimenticavo che stai usando il formato sql. guarda la risposta aggiornata – jvnill

+0

Grazie per l'aggiornamento. In realtà mi sto chiedendo se c'è un modo non rake di farlo, solo perché lo chiamerò da un test, e chiamare il rake sembra come se non fosse necessario (anche se sono abbastanza nuovo per Rails, quindi posso presumere troppo). Stavo pensando che se ActiveRecord :: SchemaDumper.dump è il comando equivalente di rake db: schema: dump, forse c'è un equivalente a una linea equivalente a rake db: structure: dump ...? – MothOnMars

Problemi correlati