2011-09-09 85 views
4

我爲我的rails應用程序編寫了一個Mysql函數,並且通過手動將它添加到我的數據庫中。 當我想使用Rails的單元測試,它通過錯誤測試功能類似下面如何在rails測試數據庫中創建mysql函數?

ActiveRecord::StatementInvalid: Mysql::Error: FUNCTION mydatabase.fn_Sample_Function does not exist: 

如何添加的功能,從試運行的測試套件或開始的?

在此先感謝, Aaa。

回答

1

我看不到錯誤。但我認爲問題是您的架構格式。

config.active_record.schema_format = :sql 

in application.rb應該是你需要做的。

原因在於默認情況下,您的測試數據庫不是由開發數據庫的模式轉儲而是由db/schema.rb轉換而來的,而不是db函數。

sql模式格式將會將模式唯一標誌設置爲true並創建一個development_structure.sql文件來執行mysqldump(或pg_dump)。

+0

感謝您的快速回答,我使用2.3.12版本。我不認爲我們可以在application.rb文件中使用配置對象..請糾正我,如果我錯了..我把它添加到enviroment.rb文件,但沒有幫助.. – Jak

+0

好 - environment.rb是好的 - 做到了創建development_structure文件? –

+0

environment.rb是添加此配置的地方。請運行'rake db:schema:dump'以sql格式生成schema.rb,然後運行你的單元測試。 – dexter