2013-04-11 7 views
32

Sto provando a visualizzare lo schema della mia app Heroku in Terminal (Mac OS X Lion) e sono incappato in un comando che fa proprio questo. In Terminal eseguo heroku run more db/schema.rb ma sembra che mostri una versione precedente dello schema. Ho appena migrato il db Heroku e ho notato che nessuna delle nuove colonne è elencata.Come visualizzare lo schema del database corrente per l'app Heroku in Terminal?

Non riesco a trovare nulla di utile nella documentazione di Heroku. Qualcuno conosce un comando per visualizzare lo schema del database corrente per un'app di Heroku?

A proposito, ho ereditato il codice per l'app e per qualche motivo tutti i file di migrazione sono commentati (ci sono probabilmente più di 40 file) quindi non posso semplicemente eseguire rake db:migrate localmente per aggiornare lo schema; quindi, mi piacerebbe vedere lo schema dell'app di Heroku direttamente.

Qualche suggerimento?

risposta

66

È possibile eseguire heroku pg:psql per attivare una console Postgres, quindi emettere \d per visualizzare tutte le tabelle e \d tablename per visualizzare i dettagli per una determinata tabella.

+0

Questo è perfetto. Grazie! – mmichael

+2

Per uscire, digita "q" e premi invio. –

24

Per uno schema rotaie, provare:

$ heroku run "bundle exec rake db:schema:dump && cat db/schema.rb" 
+0

I [documenti di Heroku] (https://devcenter.heroku.com/articles/rake) affermano che "Le attività di rake che scrivono sul disco, come rake db: schema: dump, non sono compatibili con il filesystem effimero di Heroku." Questo comando non fallirà? – mmichael

+1

Funziona. Puoi contare sul file esistente per un po 'di tempo in cui il 'run' dyno è attivo, che è intrinsecamente abbastanza lungo da essere' cat''d. – kch

+0

Risposta migliore: copia lo schema completo di Heroku sul tuo terminale – user3763682