有没有办法使用Activerecord迁移创建mysql触发器?有没有人在工作,分享你的经验。谢谢如何使用Rails中的迁移创建mysql触发器?
回答
有没有神奇的方法,让你创建一个触发器,而无需编写任何SQL。
但是你可以在任何迁移中执行原始的sql。
def self.up
execute <<-SQL
CREATE TRIGGER my_trigger ...
SQL
end
然后,您只需要适当地编写触发器或根据迁移进行更新。
编辑:我刚刚发现rails_on_pg,它提供了一些帮助迁移。
它不适用于PgSQL以外的任何其他数据库服务器。但是,如果你正在编写一些MySQL触发助手,它可能是一个很好的主角。
有一个名为hairtrigger的宝石,使它更容易和更便携(mysql/sqlite/postgres)。它可以让你在你的迁移中以db-agnostic的方式创建触发器,或者甚至更好的是你可以在你的模型中声明它们,然后运行rake db:generate_trigger_migration来为你做。
此gem已过时 - 支持Rails 2.3 - Rails 3.0.x.但想法很好。 – 2012-09-04 18:39:57
该宝石已更新,以支持最新版本的导轨 – 2012-12-04 07:32:27
乔恩你的宝石是太棒了。你知道任何生成pg索引吗? – zabumba 2013-03-28 21:55:45
认为这可能帮助别人......
如果我们把自定义的SQL的开发环境,它可能无法正常工作,如果我们使用sqlite3的,我们的迁移命令将失败的源码:
rake db:migrate
我发现在db/scripts下的单独文件中创建触发器sql更有用,并在mysql cli中执行它们。这样我可以在触发器更改时根据需要重新运行它们。
- 1. 如何在Rails迁移中创建触发器?
- 2. Grails迁移插件创建触发器
- 3. October CMS使用迁移创建UUID默认值触发器
- 4. 如何在mysql中创建触发器?
- 5. 如何创建触发器的MySQL 5.6
- 6. Rails的迁移创建表
- 7. Rails:使用迁移来创建关联
- 8. Mysql使用触发器创建表
- 9. 如何为mysql 5.5.44创建触发器?
- 10. 如何创建这个MySQL触发器?
- 11. Sequelize迁移 - 在PostgreSQL中创建触发器
- 12. 如何在MySql中使用触发器来创建外键
- 13. 创建触发器Mysql
- 14. 创建MySQL触发器
- 15. Mysql创建触发器
- 16. Rails的:如何创建添加迁移“使用:B树”外键
- 17. 如何使用Rails :: Generators.invoke(“active_record:migration”)生成创建表迁移文件?
- 18. 将Quartz触发器创建迁移到2.2.x
- 19. 如何使用mysql为表日志创建触发器?
- 20. 创建MySQL的触发使用DataMapper的
- 21. 如何创建触发器?
- 22. 使用Laravel迁移创建外键时发生MySQL错误
- 23. laravel使用迁移创建触发器抛出错误或访问冲突
- 24. 在mysql中创建触发器
- 25. 在Mysql中没有创建触发器
- 26. 在mysql中创建一个触发器
- 27. 在MySQL触发器中创建变量
- 28. 在MYSQL中创建BEFORE INSERT触发器
- 29. RAILS将触发器添加到迁移中
- 30. 如何在rails 3中创建新的迁移
感谢您的资源,我并不知道它确实存在:) – 2009-10-28 10:29:45
最好现在删除对'rails_on_pg'的引用:)它是6年前的最新更新:) – bbozo 2016-01-11 17:13:02