Ich arbeite mit einem Rails-Projekt, das UUIDs verwendet, über die uuid-ossp
-Erweiterung.Was ist die einfachste Möglichkeit zum Aktivieren von UUIDs in einem Rails-Schema?
Dies wird durch dem getan, was wie eine Standard-Migration zu mir aussieht:
class EnableExtensions < ActiveRecord::Migration
def change
enable_extension 'plpgsql'
enable_extension 'uuid-ossp' if Rails.env.development? || Rails.env.test?
end
end
Doch mit dieser Arbeit erfordert, dass manuell mit einem Postgres Super-User für jede Datenbank aktiviert werden, um die Erweiterung um und setze ich gehen zu:
-- enable_extension("uuid-ossp")
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: permission denied to create extension "uuid-ossp"
HINT: Must be superuser to create this extension.
: CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
ich bin nicht meinem Benutzer gehen zu geben, oder die Schienen Projektnutzer, Superuser-Privilegien auf jedem meiner Datenbanken - das wie eine gute Gewohnheit scheint nicht. Wie soll ich das machen?
Hinweis: this question's accepted answer doesn't answer the larger question in the title.
Basierend auf [dieser] (http://stackoverflow.com/a/20745157/143238) Antwort auf eine ähnliche Frage zu Heroku (von der Frage verknüpft, damit Sie erwähnt als kein Duplikat ist), https://github.com/dimitri/pgextwlist ermöglicht es Ihnen, Erweiterungen auf die weiße Liste zu setzen, ohne Superuser-Berechtigungen gewähren zu müssen. – BM5k
@ BM5k Ich werde das als eine Antwort akzeptieren, wenn Sie einen darüber veröffentlichen. –