Mik*_*cic 13 migration rake ruby-on-rails
我最近通过迁移向我的数据库添加了一些SQL函数,它们工作得很好.代码工作,数据库工作,测试没有.schema.rb文件告诉我它是最新版本(并且它是正确的),但它只包含表和索引的定义,而不是我添加的函数.
我在迁移中通过"execute()"方法添加了这些函数,并且需要在测试数据库中将它们传递给RSpec测试(公司策略规定在修复之前我不能提交此更改).
有谁知道为什么会这样,或者如何解决它?我可以手动进入MySQL命令行并添加函数,但是下次有人执行db:test:prepare时它们会被删除.我需要一个可以自动化的解决方案.
感谢您的帮助和回复,
-Mike Trpcic
Ste*_*sen 12
schema.rb是Ruby模式格式,它不支持函数或许多其他更高级的功能.将格式更改为纯SQL(in environment.rb),你应该很高兴.
config.active_record.schema_format = :sql
Run Code Online (Sandbox Code Playgroud)
编辑:在Mike的评论之后,我做了一些挖掘.Rake任务将模式调用转储到MySQL和Oracle的ActiveRecord连接适配器中.MySQL不是很聪明,只会转储表结构,忽略其他所有内容.PostgreSQL,SQLite,SQL Server和Firebird调用供应商提供的可执行文件.
我环顾了Rails灯塔,但寻找开放的门票远比它应该更难.如果没有其他人对此提出过错误,你可能会考虑这样做,虽然没有补丁,但是不太可能有人会对它进行处理.
| 归档时间: |
|
| 查看次数: |
1746 次 |
| 最近记录: |