Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Rails Support
      • Working with Bundler
    • Python
      • Working with Django
      • Background Jobs in Python
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Add-ons
  • All Add-ons
  • Autobus
Autobus

This add-on is operated by Quantum Gears

Automatic backup service for PostgreSQL, MySQL and MariaDB

Autobus

Last updated 20 February 2019

Table of Contents

  • Provisioning the add-on
  • Data safety and security
  • Backups Retention Limits
  • Restoring backups
  • API
  • Migrating between plans
  • Removing the add-on
  • Support

Autobus is an add-on for providing a simple-to-use automatic backup service for PostgreSQL (Heroku Postgres), MySQL (ClearDB, JawsDB) and MariaDB (JawsDB Maria) databases. Autobus gives you the following:

  • Smart automation — You can schedule daily backups to minimize load on your application database.

  • Cross-continental backup — For applications that are hosted in the US, snapshots are stored in the EU region and the other way round.

  • Data integrity verification — All snapshots are tested for restorability and you’ll be notified if anything goes wrong.

  • Full control — You can entirely rule backup process. Exclude tables, select dump options and manage snapshots via web dashboard or RESTful API.

  • Detalization — Autobus provides brief database statistics for each snapshot. You can monitor the changes in your database day by day.

  • Quick start — You need just a few clicks to get a fully functional automatic backup system. No code and configs, just an easy-to-use web dashboard.

Autobus Dashboard

Provisioning the add-on

A list of all plans available can be found here.

To get a working automatic backup system you need to do just a two step:

1) Visit Heroku Dashboard and select the application in question. Then click on “Access” tab and add our Heroku account (heroku@autobus.io) as collaborator for your application (if you are Heroku Enterprise user please make sure it has “operate” permission).

2) Attache Autobus add-on to your application from Heroku Dashboard or via the CLI

$ heroku addons:create autobus
-----> Adding autobus to sharp-mountain-4005... done, v18 (free)

That’s all!

It’s also a good idea to get a look at default preferences on Autobus Settings tab and personalize them if necessary. To do this log into the Autobus dashboard via the CLI:

$ heroku addons:open autobus
Opening autobus for sharp-mountain-4005…

or by visiting the Heroku Dashboard and selecting Autobus from the Add-ons menu.

Data safety and security

We’re using only secure protocols for all data transfers on all levels of interactions. Created snapshots are encrypted by multi-factor Server-Side Encryption with Amazon S3-managed keys (SSE-S3) at rest. Our Heroku account is protected by a strong password and two-factor authentication.

Backups Retention Limits

Snapshot type Retention period
Manual Unlimited
Daily 1 week
Weekly 4 weeks
Monthly 1 year

Monthly snapshots are disabled by default, you can enable it on the “Settings” tab (section “Monthly backups”) in the Autobus dashboard.

Restoring backups

You can download any snapshot from the Autobus dashboard and restore it into your local or remote database.

PostgreSQL

Manually:

$ pg_restore --verbose --clean --no-acl --no-owner -h host -U myuser -d mydb DATABASE_54d4041969702d0295380301.dump

Or via pg:backups:

$ heroku pg:backups:restore "https://autobus-us.s3.amazonaws.com/DATABASE_5ac7bb45772c9005be448fbe.dump?AWSAccessKeyId=..." DATABASE_URL --app sushi

URL of the certain snapshot you can find in Autobus dashboard.

MySQL

$ gzip -d -c DATABASE_54d4041969702d0295380301.sql.gz | mysql -h host -uuser_name -ppassword db_name

API

Autobus provides the simple RESTful API to access your snapshots via any http-client. By default it’s disabled. Before use you need to enable it on the “Settings” tab (“Account settings” section) in the Autobus dashboard. In the same section you can find your personal API token.

List all snapshots

URL: "https://www.autobus.io/api/snapshots"
Method: "GET"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN"}
Response Body: [{"id":"550bb45669702d21bd430000", "kind":"Daily", "created_at":"2015-03-20T05:47:03.592Z", ...}, ...]

Get the latest snapshot URL

URL: "https://www.autobus.io/api/snapshots/latest"
Method: "GET"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN"}
Response Body: "https://autobus-us.s3.amazonaws.com/PURPLE_552b383e69702d5b420f0000.dump..."

The URL expires after 30 minutes.

Create snapshot

URL: "https://www.autobus.io/api/snapshots"
Method: "POST"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN", "database": "FULL_DATABASE_NAME", "description": "SNAPSHOT_DESCRIPTION"}
Response Body: {"message": "Snapshot is in progress, it may take awhile", "jid": "0255ba3ef315936317d883d8"}

Note: “database” and “description” parameters are optional.

Check snapshot

URL: "https://www.autobus.io/api/snapshots/check_snapshot"
Method: "GET"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN", "jid": "YOUR_JID"}
Response Body: {"completed"=>true, "snapshot_id"=>"5880eb73cc5fb5d74da892cd"}

Get information about the certain snapshot

URL: "https://www.autobus.io/api/snapshots/:snapshot_id"
Method: "GET"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN"}
Response Body: {"id":"550bb45669702d21bd430000", "kind":"Daily", "created_at":"2015-03-20T05:47:03.592Z", ...}

Delete snapshot

URL: "https://www.autobus.io/api/snapshots/:snapshot_id"
Method: "DELETE"
Content-Type: "application/json"
Parameters: {"token": "YOUR_API_TOKEN"}
Response Body: {"message": "Snapshot has been deleted"}

Migrating between plans

A list of all plans available can be found here.

Use the heroku addons:upgrade command to migrate to a new plan.

$ heroku addons:upgrade autobus:travel
-----> Upgrading autobus:travel to sharp-mountain-4005... done, v18 ($20/mo)
       Your plan has been updated to: autobus:travel

Removing the add-on

Autobus can be removed via the CLI.

This will destroy all associated data and cannot be undone!

$ heroku addons:destroy autobus
-----> Removing autobus from sharp-mountain-4005... done, v20 (free)

Before removing the Autobus add-on you can download recent snapshots from the dashboard.

Support

All Autobus support and runtime issues should be submitted via one of the Heroku Support channels. Any non-support related issues or product feedback is welcome at support@autobus.io.

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Ziggeo Autodyne

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies