Archiving Data to Heroku

Ok after hours of searching I cannot believe that something that would seem like an every day need does not have any videos, tutorials, etc directly related to it.

Heroku is tough for me as it seems so hard to get even the simplest app up and running (My issue, kinda like when one first starts learning SF, it is a steep learning curve as it is not the concept that is difficult but all the thing you have to take into consideration).

Any way, we now have

  • External Objects – GREAT – Easy – once data is in there
  • Lightning Connect -> Not good for this as data will be removed
    from SF and from what I can tell it is a two way sync only so if data is deleted from SF it is deleted from Heroku

All I am trying to accomplish is to:

  1. Use batch apex / loader to push old Custom Object (2 years or older) to, for now, a Heroku Postgres Database
  2. Delete the data from Salesforce
  3. Use remote objects to access the data.

2 and 3 are easy BUT my question is:

What is the best way to get the data to the Heroku postgres database?

Options That I have explored:

  1. Informatica or similar Cloud Data loaders on a scheduled basis
  2. Building a complete REST API in Heroku (learning curve) to be able to use batch apex to send the data in a JSON format to Heroku

I am sure someone has tackled this already and I am looking for confirmation that the two options I have above are the two best options. Also, can anyone confirm that for this purpose that #1 is the quickest and easiest way to go? #2 is a steep curve for me as the workings of deploying an app are fraught with all kinds of issues with the CLI.

Reason behind doing the archive: Cost of data storage on SFDC

I appreciate any insight that can be offered and any amazing resources that have help you progress from that first step of trial to the big step of understanding.

To summarize, best practice for archiving data from Salesforce to a Heroku postgres database with a focus on getting the data from Salesforce TO Heroku.


Definitely a common use case that Salesforce is aware of and working on solving. See this pilot:

If you aren’t under a deadline, Waiting might be the best answer.

#safeharbor as always.

Source : Link , Question Author : Eric , Answer Author : Shane McLaughlin

Leave a Comment