One of my Rails migrations uses a uuid as the primary key. The Postgres extension gen_random_uuid()
should solve this issue, but I continue to get the error after installing the relevant extension (uuid-ossp
).
The issue was that the uuid-ossp
extension was being blown away with the database each time I dropped the db as part of a reset and migration (e.g. rake db:drop db:create db:migrate
).
The fix is to create a migration that's run before all other migrations which enables the relevant extension(s). Like so (db/migrate/0_enable_extensions.rb
):
class EnableExtensions < ActiveRecord::Migration[5.1]
def change
enable_extension 'uuid-ossp'
enable_extension 'pgcrypto'
end
end