heroku-database-backups, Heroku数据库备份和复制到 S3

分享于 

4分钟阅读

GitHub

  繁體 雙語
Heroku database backups and copies to S3
  • 源代码名称:heroku-database-backups
  • 源代码网址:http://www.github.com/kbaum/heroku-database-backups
  • heroku-database-backups源代码文档
  • heroku-database-backups源代码下载
  • Git URL:
    git://www.github.com/kbaum/heroku-database-backups.git
    Git Clone代码到本地:
    git clone http://www.github.com/kbaum/heroku-database-backups
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/kbaum/heroku-database-backups
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    使用bash脚本捕捉heroku数据库备份并复制到 s3 bucket的简单heroku应用程序。 将这个部署在heroku中作为单独的应用程序,并安排脚本备份在另一个heroku项目中存在的生产数据库。

    安装

    首先在heroku上创建一个项目。

    
    heroku create my-database-backups
    
    
    
    

    添加 heroku-buildpack-cli:

    
    heroku buildpacks:add https://github.com/heroku/heroku-buildpack-cli -a my-database-backups
    
    
    
    

    下一步将这里项目推送到你的heroku项目git知识库。

    
    git remote add heroku git@heroku.com:my-database-backups.git
    
    
    git push heroku master
    
    
    
    

    现在我们需要设置一些 环境变量,以便使用 heroku-buildpack-cli命令正确地运行 heroku。

    
    heroku config:add HEROKU_API_KEY=`heroku auth:token` -a my-database-backups
    
    
    
    

    接下来我们需要添加amazon密钥和密钥。

    
    heroku config:add AWS_ACCESS_KEY_ID=123456 -a my-database-backups
    
    
    heroku config:add AWS_DEFAULT_REGION=us-east-1 -a my-database-backups
    
    
    heroku config:add AWS_SECRET_ACCESS_KEY=132345verybigsecret -a my-database-backups
    
    
    
    

    我们还需要设置存储数据库备份的桶和路径:

    
    heroku config:add S3_BUCKET_PATH=my-db-backup-bucket/backups -a my-database-backups
    
    
    
    

    设置S3_BUCKET_PATH时要小心,使它的停止向前斜杠。 如果你的目录是"//" ( S3没有真正的目录。),则Amazon控制台S3浏览器将无法定位你的文件。

    最后,我们需要添加heroku计划程序,并在适当的数据库和应用程序之间调用 backup.sh

    
    heroku addons:create scheduler -a my-database-backups
    
    
    
    

    现在,在你的浏览器中打开它:

    
    heroku addons:open scheduler -a my-database-backups
    
    
    
    

    并添加以下命令以按你希望的频率运行:

    
    APP=your-app DATABASE=HEROKU_POSTGRESQL_NAVY_URL/app/bin/backup.sh
    
    
    
    

    在上述命令中,应用程序是包含数据库的heroku中应用程序的名称。 数据库是要捕获和备份的数据库的名称。 在我们的设置中,数据库实际上指向跟随者数据库,以避免对用户的任何影响。 在你的heroku配置中,这两个 环境变量 也可以设置,而不是传递到脚本调用中。


    相关文章