Ne peut pas importer à la base de données Heroku postgres de dump

Désolé si c'est un doublon, mais j'ai essayé de trouver une réponse ici, et rien n'a aidé.

donc j'ai lu des articles d'heroku comme ce et ce . J'ai pu sauvegarder un fichier dump, que j'ai créé avec la commande pg:backups capture . Téléchargé sur s3 et essayé de restaurer avec:

heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'

mais ça ne marche pas! Dans une console, il enregistre:

Unknown database: https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump. Valid options are: DATABASE_URL, HEROKU_POSTGRESQL_SILVER_URL

essayé options listées au lieu de DATABASE , mais avec le même résultat. J'ai aussi essayé d'autres hébergements, mais avec le même résultat, encore une fois. J'ai aussi essayé de restaurer à partir d'une autre application, comme ceci:

heroku pg:backups restore myapp::b001 HEROKU_POSTGRESQL_SILVER --app myapp-cedar

mais il se connecte avec Backup oncampus::b001 not found. cependant, la commande heroku pg:backups --app myapp montre qu'il est présent.

=== Backups
ID    Backup Time                Status                              Size    Database
----  -------------------------  ----------------------------------  ------  --------
b001  2015-03-13 18:10:14 +0000  Finished 2015-03-13 18:10:22 +0000  9.71MB  ORANGE

je Ne sais pas quoi faire maintenant. Espérons juste que quelqu'un va m'aider.

8
demandé sur marc_s 2015-03-14 15:27:47

2 réponses

l'ordre des arguments à la commande est significatif. Dans le premier exemple ci-dessus, vous avez heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' , mais la commande s'attend à ce que la référence en premier et le db se chargent en second, ce qui donnerait heroku pg:backups restore 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' DATABASE à la place. Je pense que dans le nouveau stuff ID peut être préféré à URL, mais URL devrait fonctionner aussi longtemps que cette URL est accessible. J'espère que ça vous aidera, sinon dites-le-moi et on pourra essayer d'autres trucs.

8
répondu geemus 2015-03-17 20:54:30

préparer deux fichiers sh comme ci-dessous

backup.sh

NOWDATE=`date +%Y-%m-%d`
BACKUPNAME=$NOWDATE.dump
export PGPASSWORD='<password>'
echo “Creating backup of database  to $BACKUPNAME”
/usr/bin/pg_dump --host <urhostname> --port 5432 --username "<user>" --role "<role>" --no-password  --format tar --blobs --verbose --file "./$BACKUPNAME" "dbname"
echo “Succesfully created database backup”
echo “Uploading backup to Amazon S3 bucket…”
s3cmd put $BACKUPNAME s3://path/to/$BACKUPNAME
echo “Successfully uploaded backup to S3″
echo “Deleting backup file…”
rm $BACKUPNAME
echo “Done”

restore.sh

NOWDATE=`date +%Y-%m-%d`
BACKUPNAME=$NOWDATE.dump
echo “downloading the file $BACKUPNAME”
s3cmd get s3://path/to/$BACKUPNAME
echo “Succesfully downloaded”
echo “Will restore it Please wait “
export PGPASSWORD='<password>'
pg_restore --host <host> --port 5432 --username "<user>" --dbname "<databasename>" --role "<role>" --no-password  --verbose "./$BACKUPNAME"
echo “restoring the file $BACKUPNAME”
echo “Deleting backup file…”
rm -r $BACKUPNAME

echo “Done”

vous devez configurer les justificatifs d'identité s3cmd espérons que cela vous aidera!

1
répondu Jameel Grand 2015-03-23 11:43:51