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

Remove SQL code from Rails schema file

所以不久前我在使用触发器并在我的一个表中添加了一些用于插入和更新事件,因此它们进入了我的 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,如果它很重要的话。

rake -T 在 Rails 应用程序中会这样说:

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文件。