2013-03-01 75 views
11

我試圖手動創建/更新用於測試目的的db/structure.sql文件。我在application.rb中設置了「config.active_record.schema_format = :sql」。我想知道是否有相當於「ActiveRecord::SchemaDumper.dump」的命令來創建或更新structure.sql。我試過structure_dump,但產量爲零:需要幫助爲我的Rails應用程序創建structure.sql

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

我也試過路過一個文件到方法:

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

到目前爲止,我已經能夠產生的唯一途徑或更新db/structure.sql是通過運行rake db:migrate。任何替代品?或者當我嘗試運行ActiveRecord :: Base.connection.structure_dump時錯過了一些東西?

回答

23

嘗試rake db:structure:dump將從數據庫重新創建db/structure.sql

+1

'rake db:schema:dump'只是重新生成schema.rb。我想要得到structure.sql。 – MothOnMars 2013-03-01 00:49:57

+0

我的不好。忘了你使用的是sql格式。請參閱更新的答案 – jvnill 2013-03-01 00:54:55

+0

感謝您的更新。我真的想知道是否有一個非耙子任務的方式來做這件事,僅僅因爲我會從測試中調用它,並且調用耙子任務似乎不應該是必要的(儘管我很新Rails,所以我可能會假設太多)。我在想,如果ActiveRecord :: SchemaDumper.dump是等效於rake db:schema:dump的命令,那麼可能存在與rake db類似的單行命令:structure:dump ...? – MothOnMars 2013-03-01 01:09:07