5

Rails は、移行を実行する代わりに schema.rb からテスト データベースを作成するため、テスト データベースではなく開発データベースにトリガーを作成することに気付きました。(移行として) トリガーがあり、それが正しいことを行うことをテストする必要があります。テストデータベースにトリガーを手動で追加しようとしましたが、うまくいきませんでした。

4

2 に答える 2

5

デフォルトでは、railsはデータベースに依存しないschema.rbを使用してテストデータベースをセットアップします。これは、トリガーなどを理解しません。

thenに変更config.active_record_schema_formatすると:sql、railsは代わりに開発データベースの構造を表す生のSQLをダンプし、それを使用してテストデータベースを再作成します。このダンプはdevelopment.sqlに配置され、schema.rbの代わりに使用されます。

このダンプは、データベースが提供するコマンドラインツールを使用して実行されるため、アクティブレコードが認識しないトリガーなどの機能を尊重します

于 2012-04-05T18:22:59.737 に答える
0

SQL ダンプよりも Ruby ダンプを好む場合は、この gem を試してみてください。

https://github.com/jovoto-team/trackless_triggers

mysql のダンプ トリガーと関数をサポートしています。

于 2013-03-05T15:14:08.680 に答える