有沒有辦法使用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