Come dice Kirsten, i piani di database condivisi non sono attualmente accessibili dall'esterno della piattaforma Heroku (questo è qualcosa riservato al servizio Postgres di "produzione"). Tuttavia, ci sono alcune altre opzioni.
Uno dei principali è estrarre i dati e guardarli localmente. Utilizzando il rubygem di Taps questo è fortunatamente molto molto semplice:
$ heroku db:pull
...
Receiving schema
Receiving data
8 tables, 591 records
users: 100% |==============================================| Time: 00:00:00
pages: 100% |==============================================| Time: 00:00:00
comments: 100% |==============================================| Time: 00:00:00
tags: 100% |==============================================| Time: 00:00:00
Receiving indexes
Resetting sequences
Sono disponibili alcune altre opzioni che possono semplificare questa attività se utilizzi un set di dati di grandi dimensioni:
# -c, --chunksize SIZE # specify the number of rows to send in each batch
# -d, --debug # enable debugging output
# -e, --exclude TABLES # exclude the specified tables from the push
# -f, --filter REGEX # only push certain tables
# -r, --resume FILE # resume transfer described by a .dat file
# -t, --tables TABLES # only push the specified tables
Tutto questo può essere visto nella heroku gem source .
I tocchi possono essere utilizzati anche al di fuori del contesto di Heroku. Per ulteriori informazioni, consulta il README. .
Una seconda opzione, molto più preferibile con set di dati più grandi, consiste nell'usare il componente aggiuntivo Heroku pgbackups . Ciò ti consentirà di creare un dump del tuo database e quindi di scaricare il file in locale per importarlo su un DB pulito. Questo è significativamente più veloce di Taps grazie al modo in cui funziona Taps.
Usarlo è bello e semplice:
$ heroku update
$ heroku addons:add pgbackups
Adding pgbackups to myapp... done
$ heroku pgbackups:capture
DATABASE_URL ----backup---> b003
Dump... 2.6MB, done
Upload... 2.6MB, done
$ heroku pgbackups
ID | Backup Time | Size | Database
-----+---------------------+---------+----------------------
b003 | 2010/10/22 15:16.01 | 2.6MB | SHARED_DATABASE_URL
b004 | 2010/10/22 15:18.12 | 424.7MB | HEROKU_POSTGRESQL_URL
$ heroku pgbackups:url b004
"http://s3.amazonaws.com/hkpgbackups/[email protected]/b004.dump?AWSAccessKeyId=ABCD1234&Expires=1289261668&Signature=3mMBeKISewgEUDT%2FL5mRz4EYS4M%3D"
L'ultimo URL può essere scaricato e importato.