我正在调整一个bash脚本,我找到了在Heroku上下载数据库内容并将它们导入开发环境的地方。
#!/bin/bash
heroku pgbackups:capture --expire --app testivate
file_path="db_$(date +%Y_%m_%d-%H_%M_%S).dump"
curl `heroku pgbackups:url --app testivate` > $file_path
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U steven -d DATABASENAME $file_path
我的问题是,是否有一个命令可以运行以查找我的开发数据库的名称?
在/config/database.yml
我有:
development:
adapter: postgresql
database: db/testivate_development
pool: 5
username: steven
password: <redacted>
host: localhost
所以我的名字我尝试过“steven”,“db / testivate_development”和“testivate_development”,但都给出了“数据库不存在”的错误。
答案 0 :(得分:0)
我建议您使用pg:transfer heroku客户端插件。 https://github.com/ddollar/heroku-pg-transfer
这可以让你:
heroku pg:transfer --from VIOLET
在项目文件夹中,您有一个包含
的.env文件DATABASE_URL=postgres://127.0.0.1/development_db_name
它包装捕获,为您恢复。 VIOLET是Heroku上的DB url的名称(来自heroku config
。其余的应该是自我解释的。
答案 1 :(得分:0)
https://devcenter.heroku.com/articles/heroku-postgresql
此页面上的文档显示了如何查找此信息。 Heroku不使用配置文件中的db名称,它会创建自己的名称和密码,这基本上是随机字符串。