无法从转储导入到 heroku postgres 数据库
Can't import to heroku postgres database from dump
抱歉,如果它是重复的,但我试图在这里找到答案,但没有任何帮助。
所以我读过像 this and this 这样的 heroku 文章。我能够保存一个使用 pg:backups capture
命令创建的转储文件。将其上传到 s3 并尝试通过以下方式恢复它:
heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'
但这就是行不通!在控制台中记录:
Unknown database: https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump. Valid options are: DATABASE_URL, HEROKU_POSTGRESQL_SILVER_URL
尝试了列出的选项而不是 DATABASE
,但结果相同。我也尝试过其他托管,但结果相同。我也试过从其他应用程序恢复它,像这样:
heroku pg:backups restore myapp::b001 HEROKU_POSTGRESQL_SILVER --app myapp-cedar
但是它用 Backup oncampus::b001 not found.
记录但是,命令 heroku pg:backups --app myapp
显示它存在。
=== 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
不知道现在该怎么办。只是希望有人能帮助我。
命令参数的顺序很重要。在上面的第一个示例中,您有 heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'
,但该命令期望引用 FIRST 和数据库加载到第二个,这将给出 heroku pg:backups restore 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' DATABASE
。我认为在新的东西中 ID 可能比 URL 更受欢迎,但是只要 URL 可以访问,URL 就应该可以工作。希望对您有所帮助,否则请告诉我,我们可以试试其他东西。
准备两个sh文件如下
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”
您需要配置 s3cmd 凭据,希望对您有所帮助!
geemus 正确解决了 Danny Ocean 的问题。
顺序确实有影响,DATABASE_URL
放在最后而不是开头。
只想将 link 留给 this answer,我相信这可以帮助其他遇到类似问题的用户。
抱歉,如果它是重复的,但我试图在这里找到答案,但没有任何帮助。
所以我读过像 this and this 这样的 heroku 文章。我能够保存一个使用 pg:backups capture
命令创建的转储文件。将其上传到 s3 并尝试通过以下方式恢复它:
heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'
但这就是行不通!在控制台中记录:
Unknown database: https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump. Valid options are: DATABASE_URL, HEROKU_POSTGRESQL_SILVER_URL
尝试了列出的选项而不是 DATABASE
,但结果相同。我也尝试过其他托管,但结果相同。我也试过从其他应用程序恢复它,像这样:
heroku pg:backups restore myapp::b001 HEROKU_POSTGRESQL_SILVER --app myapp-cedar
但是它用 Backup oncampus::b001 not found.
记录但是,命令 heroku pg:backups --app myapp
显示它存在。
=== 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
不知道现在该怎么办。只是希望有人能帮助我。
命令参数的顺序很重要。在上面的第一个示例中,您有 heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'
,但该命令期望引用 FIRST 和数据库加载到第二个,这将给出 heroku pg:backups restore 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' DATABASE
。我认为在新的东西中 ID 可能比 URL 更受欢迎,但是只要 URL 可以访问,URL 就应该可以工作。希望对您有所帮助,否则请告诉我,我们可以试试其他东西。
准备两个sh文件如下
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”
您需要配置 s3cmd 凭据,希望对您有所帮助!
geemus 正确解决了 Danny Ocean 的问题。
顺序确实有影响,DATABASE_URL
放在最后而不是开头。
只想将 link 留给 this answer,我相信这可以帮助其他遇到类似问题的用户。