我有一些原始的sql语句,可以在迁移中创建触发器和函数。它们不会在测试中调用。
如何使用正常迁移来设置测试数据库?为什么这不是默认方法?
原因是测试数据库是从 schema.rb 文件还原的。并且架构转储不会创建过程,函数,fkey等。原因是Rails不鼓励使用它们。但是,您可以将架构转储格式更改为 sql。
config.active_record.schema_format = :sql
请参阅以下线程 为什么 Rails 中的 rake db:migrate 不会向模式文件添加函数?
也请查看这篇文章 http://pivotallabs.com/users/jdean/blog/articles/1707-using-mysql-foreign-keys-procedures-and-triggers-with-rails