Rails アプリ用に Mysql 関数を作成し、手動でデータベースに追加しました。Rails UNIT テストを使用して関数をテストしたい場合、以下のようなエラーが発生します
ActiveRecord::StatementInvalid: Mysql::Error: FUNCTION mydatabase.fn_Sample_Function does not exist:
テスト スイートから、またはテスト実行の開始時に関数を追加する方法は?
よろしくお願いします。
Rails アプリ用に Mysql 関数を作成し、手動でデータベースに追加しました。Rails UNIT テストを使用して関数をテストしたい場合、以下のようなエラーが発生します
ActiveRecord::StatementInvalid: Mysql::Error: FUNCTION mydatabase.fn_Sample_Function does not exist:
テスト スイートから、またはテスト実行の開始時に関数を追加する方法は?
よろしくお願いします。
エラーが表示されません。しかし、問題はスキーマ形式にあると思います。
config.active_record.schema_format = :sql
in application.rb は、あなたがする必要があるものでなければなりません。
その背後にある理由は、デフォルトでは、テストデータベースは開発データベースのスキーマのみのダンプからではなく、mysql 関数について何も知らない db/schema.rb から作成されるためです。
SQL スキーマ形式は、スキーマのみのフラグを true に設定して mysqldump (または pg_dump) を実行し、development_structure.sql ファイルを作成します。