Heroku ConnectのGetting Started
Dev CenterのGetting Started on Heroku with Heroku Connectに添って進めていけば、SalesforceのテーブルがPostgresのテーブルと同期するところまで試せます。サンプルアプリはsinatraとsinatra-activerecordを使っています。
Salesforceは開発に利用できる無料のDeveloperEditionがあるので[ここからサインアップしておきます]。
しばらくするとメールが来るのでパスワードを設定してログインします。
ログインするとこんな画面になりますが、サンプルアプリで使うのは「取引先責任者」です。イマイチ意味の分からない翻訳ですがContactのことです。ちなみに取引先がAccountです。
DeveloperEditionにサンプルで入っている取引先責任者が表示されます。Getting Startedを進めていくと、これがPostgresに同期されます。
最初のデプロイ
Getting Startedのこのステップでは、Heroku Buttonでこのサンプルアプリをデプロイします。フリープランのHeroku PostgresとHeroku Connectがインストールされます。
同期設定
ダッシュボードからデプロイしたアプリを開き、Heroku Connectアドオンを開きます。
最初はPostgresとSalesforceの設定です。Setup Connection→Next→Next→Salesforceにログイン→アクセス許可と進めます。
Create Mappingをクリックすると、Salesforceのテーブル(Salesforce用語ではオブジェクトといいます)一覧が出てくるのでContactを探してクリックします。右上に検索ボックスがあります。
同期間隔、双方向同期するか、どのカラム(Salesforce用語では項目)を同期するかを設定できます。
Mapped Fieldsで以下の3つを選んで右上のSaveで保存します。
- FirstName
- LastName
同期確認
次のステップはDataclip、その次のステップはGitHub連携の話です。その次がソースコードを修正してGitHubからデプロイする説明ですが、heroku git:clone --app アプリ名
して手元で書き換えてgit push heroku master
でよいでしょう。
書き換える、というかコメントアウトを解除するのはapp.rb
のこの辺です。
class Contact < ActiveRecord::Base
self.table_name = 'salesforce.contact'
end
# ↓この4行のコメントアウトを解除する
get "/contacts" do
@contacts = Contact.all
erb :index
end
https://アプリ名.herokuapp.com/contacts
を開くと同期されていることが確認できます。
アドオンダッシュボードのGUIで同期設定すると、Heroku Connectが使うPostgresのスキーマにテーブルができるのでマイグレーションする必要はありません。むしろ勝手にテーブルを作るとアドオンGUIでエラーになります。