PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails + Postgres-Migration - warum erhalte ich den Fehler PG::UndefinedFunction:ERROR:function gen_random_uuid() does not exist?

Das Problem war, dass die Datei uuid-ossp Die Erweiterung wurde jedes Mal von der Datenbank umgehauen, wenn ich die Datenbank im Rahmen eines Resets und einer Migration gelöscht habe (z. B. rake db:drop db:create db:migrate ).

Die Lösung besteht darin, eine Migration zu erstellen, die vor allen anderen Migrationen ausgeführt wird und die relevante(n) Erweiterung(en) aktiviert. So (db/migrate/0_enable_extensions.rb ):

class EnableExtensions < ActiveRecord::Migration[5.1]
  def change
    enable_extension 'uuid-ossp'
    enable_extension 'pgcrypto'
  end
end