Facendo il freelance, continuo ad ottenere nuovi progetti.Config postgres per accettare qualsiasi combinazione utente/password in modalità sviluppo
Trovo che postgresql config sia molto complicato quando viene utilizzato solo in modalità sviluppo (capisco perfettamente che i requisiti di produzione sono molto diversi).
Quello che voglio ottenere è configurare i miei postgres in modo che qualsiasi sia la modalità nome utente/password/porta/connessione, ha tutti i diritti sul DB (come la sicurezza non importa qui). Lavorando con Rails, tutta la configurazione è in config/database.yml
e non voglio modificare nulla dal file stesso.
ho raggiunto avere alcuna autenticazione password_less per ogni connessione (TCP locale e), ma facendo questo:
# /etc/postgresql/9.3/main/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 0.0.0.0/0 trust
E:
# /etc/postgresql/9.3/main/postgresql.conf
listen_addresses = '*'
Come da questa Post.
Ma se l'utente (es. appname_dev
) non esiste, ottengo:
FATAL: role "appname_dev" does not exist
Questo Post mi permette di creare l'utente in 1 linea, che è giusto (sudo -u postgres createuser -d -R -P appname_dev
), ma io piacerebbe davvero che fosse plug and play.
- Come posso ottenere quello?
- Non esiste alcuna modalità di installazione di sviluppo su postgres in cui, per impostazione predefinita, le credenziali sarebbero molto più chiare configurate rispetto a quella corrente?
- Mi mancano alcune best practice che rendono questo non essere un problema?
Capisco che la cosa portuale può essere complicata, ma IMHO, il resto non dovrebbe!
Grazie per l'aiuto!
Sembra che tu voglia [sqlite] (http://www.sqlite.org) eccetto che non è completamente compatibile con postgres a livello SQL. –
SQLite si adatta alla maggior parte dei miei requisiti. Ma quello che mi piacerebbe è un db funzionante, senza dover modificare alcun singolo file di configurazione, il che significa che la scelta di Postgres + Username + Password è già stata fatta, non da me. –
È possibile connettersi solo con utenti esistenti nel database. Non c'è modo di aggirare questo. C'è qualche codice di configurazione dello schema "bootstrap" nel tuo ambiente di sviluppo? È possibile includere lo script 'create user' necessario lì e poiché tutti possono connettersi come superutente, tutti possono eseguire quel codice di bootstrap. –