2013-03-01 1 views
11

Ich versuche, die db/structure.sql Datei für Testzwecke manuell zu erstellen/zu aktualisieren. Ich habe "config.active_record.schema_format = :sql" in application.rb gesetzt. Ich frage mich, ob es einen Befehl gibt, der "ActiveRecord::SchemaDumper.dump" entspricht, der structure.sql erstellen oder aktualisieren wird. Ich habe structure_dump versucht, aber der Ausgang ist gleich Null:Benötigen Sie Hilfe beim Erstellen von Struktur.SQL für meine Rails App

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

Ich habe auch versucht zu dieser Methode eine Datei übergeben:

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

Bisher der einzige Weg, ich in der Lage gewesen bin zu erzeugen oder Aktualisieren Sie db/structure.sql indem Sie rake db: migrate ausführen. Irgendwelche Alternativen? Oder fehlt mir etwas beim Versuch, ActiveRecord :: Base.connection.structure_dump auszuführen?

Antwort

23

Versuchen Sie rake db:structure:dump, die die db/structure.sql aus der Datenbank neu erstellen wird.

+1

'Rake db: Schema: dump' regeneriert nur schema.rb. Ich versuche Struktur zu bekommen. – MothOnMars

+0

mein schlechtes. vergessen, dass Sie das SQL-Format verwenden. siehe die aktualisierte Antwort – jvnill

+0

Danke für das Update. Ich frage mich wirklich, ob es eine Non-Rake-Aufgabe gibt, nur weil ich sie aus einem Test heraus aufrufen werde, und das Anrufen der Rake-Aufgabe scheint nicht notwendig zu sein (obwohl ich ziemlich neu bin) Schienen, so darf ich zu viel vermuten). Ich dachte, wenn ActiveRecord :: SchemaDumper.dump das Befehlsäquivalent von Rake db: schema: dump ist, gibt es vielleicht eine ähnliche einzeilige Entsprechung zu Rake db: structure: dump ...? – MothOnMars

Verwandte Themen