PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Migrazione Rails + Postgres - perché ricevo l'errore PG::UndefinedFunction:ERROR:la funzione gen_random_uuid() non esiste?

Il problema era che uuid-ossp l'estensione veniva spazzata via con il database ogni volta che abbandonavo il db come parte di un ripristino e di una migrazione (ad es. rake db:drop db:create db:migrate ).

La correzione consiste nel creare una migrazione che viene eseguita prima di tutte le altre migrazioni che abilitano le estensioni pertinenti. Così (db/migrate/0_enable_extensions.rb ):

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