tutorial pricing postgres example create heroku database-migration heroku-postgres

example - heroku postgres pricing



Push base de datos a heroku: cómo usar heroku pg: push (3)

Necesitas el siguiente comando

PGUSER=root PGPWD=root heroku pg:push (local database name) DATABASE_URL --app heroku (app name)

asegúrese de haber ingresado el nombre de usuario y la contraseña correctos de postgres

Quiero enviar mi base de datos local de postgresql a heroku, usando el heroku pg:push . El comando se ve así: heroku pg:push mylocaldb DATABASE --app sushi según el documento heroku: https://devcenter.heroku.com/articles/heroku-postgresql .

Aquí está mi información de la base de datos local:

Name: mysitedb User: bill Password: bill

La variable de entorno DATABASE_URL en mi máquina está configurada en: postgres://bill:bill@localhost/mysitedb .

El nombre de mi aplicación es secure-gorge-4090 . Intenté heroku pg:push mysitedb DATABASE --app secure-gorge-4090 . La salida fue:

! Remote database is not empty. ! Please create a new database, or use `heroku pg:reset`

Me sorprendió que no haya puesto nada en mi BASE DE DATOS. Pero todavía ejecuté heroku pg:reset DATABASE para restablecer mi BASE DE DATOS. Después de eso, intenté heroku pg:push mysitedb DATABASE --app secure-gorge-4090 nuevamente, pero la salida seguía siendo la misma.

Intenté heroku pg:push postgres://bill:bill@localhost:8000/mysitedb DATABASE --app secure-gorge-4090 . La salida fue:

! LOCAL_SOURCE_DATABASE is not a valid database name

No sé cómo usar este comando para mover mi base de datos local a heroku. Necesito tu ayuda. ¡Gracias!


¿De verdad está escribiendo en el token DATABASE en sus comandos, o es un marcador de posición que está utilizando para esta pregunta? De los documentos a los que vinculó :

Like pull but in reverse, pg:push will push data from a local database into a remote Heroku Postgres database. The command looks like this: $ heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi This command will take the local database “mylocaldb” and push it to the database at DATABASE_URL on the app “sushi”. In order to prevent accidental data overwrites and loss, the remote database must be empty. You will be prompted to pg:reset an already a remote database that is not empty. Usage of the PGUSER and PGPASSWORD for your local database is also supported for pg:push, just like for the pg:pull commands.

Cuando hagas heroku config -a secure-gorge-4090 , deberías ver una entrada para HEROKU_POSTGRESQL_[SOME COLOR NAME] . Asegúrate de estar usando cualquier token en lugar de DATABASE en tus comandos.

Como tiene un nombre de usuario y una contraseña en su base de datos local, también necesita hacer la parte mencionada sobre PGUSER y PGPASSWORD . Aquí está el ejemplo de la pg:pull docs:

$ PGUSER=postgres PGPASSWORD=password heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi

Entonces deberías hacer algo como:

$ PGUSER=bill PGPASSWORD=bill heroku pg:push mysitedb HEROKU_POSTGRESQL_[SOME COLOR] -a secure-gorge-4090


Sé que esta es una vieja discusión, pero tenía exactamente el mismo problema. Aunque no es tan conveniente, logré lograr esto a través de pg: copias de seguridad en su lugar.

Esto se detalla muy bien en el sitio de soporte heroku

Comience por instalar el complemento gratuito pgbackups:

heroku addons:add pgbackups

Luego haga una copia de seguridad de la base de datos usando su utilidad local pg_dump (incluida en la distribución PostGreSQL)

pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dmp

A continuación, coloque ese archivo de volcado en algún lugar URL-addressible (por ejemplo, Dropbox) y ejecute la importación heroku (asegúrese de que sea comillas dobles para Windows):

heroku pg:backups:restore ''https://dropbox.com/dYAKjgzSTNVp4jzE/mydb.dmp'' DATABASE_URL