/ / Eliminar el código SQL del archivo de esquema Rails - sql, ruby-on-rails, base de datos, postgresql, rails-migrations

Elimine el código SQL del archivo de esquema de Rails - sql, ruby-on-rails, database, postgresql, rails-migrations

Así que hace un tiempo estaba trabajando con disparadores y agregué algunos a una de mis tablas para insertar y actualizar eventos y, por lo tanto, fueron a mi schema.rb pero luego encontré una forma de no usar disparadores y los eliminé de la consola dabatase, pero su código sql obviamente no se había eliminado del archivo de esquema, por lo que ahora tengo algo así:

  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

y creo que también he eliminado el archivo de migración -_-

Probablemente podría agregar una nueva migración con el código para eliminar los trigers, pero "haría que el archivo de esquema sea aún más desordenado, así que me pregunto si hay otra forma de eliminar este código del archivo de esquema".

Estoy usando PSQL, si es importante.

Respuestas

1 para la respuesta № 1

rake -T en una aplicación Rails tendrá esto que decir:

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

Así que puedes rake db:schema:dump para generar un nuevo db/schema.rb archivo cada vez que necesite uno.