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.
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.
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!