2011-09-09 5 views
4

私は私のレールアプリのためのMySQLの関数を書いて、私は手動で自分のデータベースに追加しました。レールデータベースにmysql関数を作成するには?

テスト実行のテストスイートまたは初めのうち、機能を追加する方法
ActiveRecord::StatementInvalid: Mysql::Error: FUNCTION mydatabase.fn_Sample_Function does not exist: 

以下のようなエラーによる 私はRailsのユニットテストを使用して機能をテストしたい、それは?

ありがとうございました。 Aaa。

答えて

1

エラーは表示されません。しかし、私は問題があなたのスキーマ形式だと仮定します。

config.active_record.schema_format = :sql 

(application.rb内)は、実行する必要があります。

デフォルトでは、テストデータベースは開発データベースのスキーマのみのダンプではなく、mysql関数については何も知らないdb/schema.rbからのものです。

sqlスキーマ形式では、スキーマ専用フラグをtrueに設定してmysqldump(またはpg_dump)を実行し、development_structure.sqlファイルを作成します。

+0

クイック回答ありがとうございます、私は2.3.12バージョンを使用しています。私はapplication.rbファイル内の設定オブジェクトを使用することはできません..私が間違っていた場合は私を修正してください..私はenviroment.rbファイルに追加しましたが、助けてくれません.. – Jak

+0

ok - environment.rbはうまくいきましたdevelopment_structureファイルを作成しますか? –

+0

environment.rbはこの設定を追加する場所です。 'rake db:schema:dump'を実行してschema.rbをSQL形式で生成し、単体テストを実行してください。 – dexter

関連する問題