1
所以前段时间我正在处理触发器,并为我的表添加了几个插入和更新事件,因此他们去了我的schema.rb
,但后来我发现了一种不使用触发器的方法并删除它们从dabatase控制台,但他们的SQL代码显然还没有从架构文件中删除,所以现在我有它类似的东西:从Rails模式文件中删除SQL代码
execute(<<-TRIGGERSQL)
CREATE OR REPLACE FUNCTION public.arguments_vector_update()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
IF TG_OP = 'INSERT' THEN
new.tsv_body = to_tsvector('pg_catalog.simple', COALESCE(NEW.text, ''));
END IF;
IF TG_OP = 'UPDATE' THEN
IF NEW.text <> OLD.text THEN
new.tsv_body = to_tsvector('pg_catalog.simple', COALESCE(NEW.text, ''));
END IF;
END IF;
RETURN NEW;
END
$function$
TRIGGERSQL
,我想我已经删除了迁移文件太-_-
我可能会添加一个新的迁移代码来删除trigers,但它会使模式文件更混乱,所以我想知道是否还有另一种方法可以从模式文件中删除此代码?
我正在使用PSQL,如果它很重要。
这个命令的一切都很完美,只是我不知道它哈哈非常感谢。您可以将它作为答案发布,我会接受它 – JustMichael 2015-04-03 07:28:30