ActiveRecord 的快乐数据库触发器
HairTrigger 允许您以简洁、直观的方式创建和管理数据库触发器。 采用 db-agnostic、Rails 方式。您可以在 Ruby 中直接在模型中声明触发器。 而一个简单的 rake 任务会为您完成所有的脏活。
HairTrigger 适用于 Rails 5.0 及更高版本。请在 Gemfile 中添加以下一行:
gem 'hairtrigger'然后运行 bundle install
对于旧版 Rails,请查看上一版 0.2 版
在模型中声明触发器,并使用 rake 任务自动生成 适当的迁移。例如:
class AccountUser OLD.name OR (NEW.name IS NULL) <> (OLD.name IS NULL) THEN
INSERT INTO user_changes(id, name) VALUES(NEW.id, NEW.name);
END IF;
END;请注意,迁移中的自动生成的 create_trigger 语句包含 :generated => true 选项,表明它们是从模型定义中生成的。这一点很重要,因为 rake 任务还会为任何被移除或更新的模型触发器生成相应的删除/创建语句。它通过比较当前模型触发器声明和 schema.rb 中的任何自动生成触发器(以及后续迁移)来实现此功能。
可选,由其他调用推断出来。
暂无开放 Issues,或尚未同步最近议题。