4

Rails アプリ用に Mysql 関数を作成し、手動でデータベースに追加しました。Rails UNIT テストを使用して関数をテストしたい場合、以下のようなエラーが発生します

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

テスト スイートから、またはテスト実行の開始時に関数を追加する方法は?

よろしくお願いします。

4

1 に答える 1

2

エラーが表示されません。しかし、問題はスキーマ形式にあると思います。

config.active_record.schema_format = :sql

in application.rb は、あなたがする必要があるものでなければなりません。

その背後にある理由は、デフォルトでは、テストデータベースは開発データベースのスキーマのみのダンプからではなく、mysql 関数について何も知らない db/schema.rb から作成されるためです。

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

于 2011-09-09T12:26:00.113 に答える