2012-05-17 13 views
11

Ho un'app Rails in esecuzione su un database postgres. Sto impostando una coda di attività in background in esecuzione sul database e ho bisogno di specificare l'URL del database.Come trovare il percorso URL per un database postgres locale?

Le varie permutazioni che ho provato e che ci si aspetterebbero tutte restituiscono FATAL: database "database-name" does not exist.

Esiste un comando che stamperà questo URL?

Oppure, che cosa dovrebbe l'URL apparire come se il mio database.yml assomiglia a questo

development: 
    adapter: postgresql 
    encoding: unicode 
    database: db/database-name 

Grazie per i suggerimenti.

+0

L'approccio classico consiste nell'esaminare il file di registro postgres, solo per vedere cosa ha tentato il frontend. – wildplasser

+0

E quale ** è ** il nome del database in PostgreSQL? –

+0

John D, ma puzza dolce come un cavallo con qualsiasi altro nome –

risposta

11

Il formato sembra essere

postgres://username:[email protected]/database 

Hai un / nel nome del database e (apparentemente) postgres accetteranno / in nomi di database, quindi è necessario utilizzare

postgres:///db/database-name 

o

postgres:///db%2Fdatabase-name 

Sentitevi liberi di prendere e db/ parte del nome del tuo database - è solo garantito per database come SQLite che memorizzano il db in un file locale e hanno bisogno di un nome file.

+0

Il percorso db era il problema. Speravo in un modo per aggirare questo, dato che avevo già dati nel database. Alla fine sono caduto, ricreato senza db nel nome e ho importato un backup. Funziona perfettamente. Grazie! –

0

Non si è sicuri di come si sta tentando di accedere al database, ma se si sta tentando di creare uno script che utilizza lo stesso database dei binari ma viene eseguito separatamente, prendere in considerazione l'utilizzo di uno script eseguito su rotaie. In Unix/Linux, se si aggiunge questa riga:

#! script/rails runner 

alla prima linea del vostro script e poi renderlo eseguibile con:

chmod +x myscript 

allora si può semplicemente eseguirlo con

./myscript 

e può utilizzare le classi modello proprio come il controller e visualizzare il codice in binari. Quindi non è necessario accedere manualmente al database.

+0

grazie michael, no ho solo bisogno del percorso di connessione al database. Sto cercando di incorporare queue_classic nella mia app https://github.com/ryandotsmith/queue_classic. –

+0

il problema che sto affrontando è il mio database.yml definisce il percorso 'db/database-name' ma l'errore è' FATAL: database "nome-dbdatabase" non esiste' - nota nessun separatore di barra dopo il db. Quindi sto cercando un modo per interrogare e capire quale percorso Rails sta usando. Qualche idea? –

Problemi correlati