gpt4 book ai didi

sql - 从 Rails 模式文件中删除 SQL 代码

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:23 24 4
gpt4 key购买 nike

所以不久前我在使用触发器并在我的一个表中添加了一些用于插入和更新事件,因此它们进入了我的 schema.rb 但后来我找到了一种方法不使用触发器并将它们从 dabatase 控制台中删除,但它们的 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

而且我想我也删除了迁移文件-_-

我可能可以添加一个新的迁移,其中包含删除触发器的代码,但它会使架构文件更加困惑,所以我想知道是否有另一种方法可以从架构文件中删除此代码?

如果它很重要,我正在使用 PSQL。

最佳答案

Rails 应用程序中的

rake -T 会这样说:

rake db:schema:dump # Create a db/schema.rb file that is portable against any DB supported by AR

因此,您可以随时rake db:schema:dump 生成一个新的db/schema.rb 文件。

关于sql - 从 Rails 模式文件中删除 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29426621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com