ruby-on-rails – 为什么rake db:在Rails中迁移不会向模式文件添加函数?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 为什么rake db:在Rails中迁移不会向模式文件添加函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近通过迁移将一些sql函数添加到我的数据库,它们工作完美.代码作品,数据库作品,测试不. schema.rb文件告诉我它是最新版本(它是正确的),但它只包含表和索引的定义,而不是我添加函数.

我在迁移中通过“execute()”方法添加了这些功能,并且需要它们在测试数据库中进行RSpec测试传递(公司策略规定我无法提交此更改,直到此修复为止).

有人知道为什么会发生这种情况,还是如何解决?我可以手动进入MySQL命令行并添加功能,但是下次有人在执行db:test:prepare时会被删除.我需要一个可以自动化的解决方案.

感谢任何帮助和回复,

-Mike Trpcic

解决方法

schema.rb是Ruby模式格式,它不支持功能或许多其他更高级的功能.将格式更改为纯sql(在environment.rb中),您应该很好.
config.active_record.schema_format = :sql

编辑:在Mike评论之后,我做了一些挖掘.将Rake任务转储到MysqL和Oracle的ActiveRecord连接适配器中. MysqL不是很聪明,只能转储表结构,忽略其他一切. Postgresql,sqlite,sql Server和Firebird调用到供应商提供的可执行文件.

MysqLdump doesn’t support dumping stored procedures之前版本5.0.13.

我环顾了Rails灯塔,但寻找公开的门票比它应该更难.如果没有其他人提出错误,您可以考虑这样做,尽管没有补丁,但是任何人都不会有任何工作.

猜你在找的Ruby相关文章