1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Heroku Connectの導入・設定・運用時に気をつけるべきこと

Last updated at Posted at 2023-08-24

前書き

~Heroku Connect ちゃんと使えば めちゃ便利 だけどときどき 落とし穴あり~

自分用に取っていたメモを編集・公開します。
今後も何かあれば未来の自分が追記していくはずです。

だいたい↑に書いてあることです。

基本的なこと

Connect設定されたTable(オブジェクト)のすべてのレコードが同期される

条件を満たすレコードのみの同期等、レコードの絞り込みはできません。

Postgres側にだけ存在するカラムを作ることはできない

Salesforceオブジェクトの項目一覧から同期が必要なものを選択していく方式。

設計・導入・設定時

Heroku Connectのunique identifierとして自動採番のIDを使用しない

SalesforceのオブジェクトID, Postgres側のIDとは別にUniqueな項目を用意する必要があります。
Reloadされたタイミングで採番がずれてしまうため、アプリ側のレコード判別値としても絶対に使用しないように。

親レコードの項目を参照した「数式」項目は、親に変更があっても自動で同期されない

親レコードを参照しない別の項目に更新があったタイミングで反映されます。

Salesforce側でオブジェクト定義を変更した後はHerokuConnct側も再設定が必要

オブジェクト定義の変更は自動的には反映されない。データ型やmax_length等、項目の定義を変更した場合は同期設定のConnect項目から一旦削除・再設定を行う必要があります。
項目の削除時も同じく、同期設定から削除する必要あり。

Postgres → Salesforceの同期に失敗した場合、自動でリトライ等は行われない

エラーの検知を実装して適宜対応していくのがベターかと思います。
Postgres → Salesforceの更新は全てtrriger_logテーブルに残っており、同期の失敗は state === 'False' の条件で抽出可能。
trigger_logの内容は一定期間でtrigger_log_archiveに移動、30日後には消滅するため注意。

同期エラーへの対応

長くなりそうなので別記事にまとめます。

テスト環境等でSalesforceのSandboxと繋ぐ場合

Sandboxにリロードがあった場合、Connectの再設定が必要になります。

に手順が書かれているんですが、サラッとAdd-onをDestroyしているため注意が必要です。
Add-onの再追加後はプランの再設定を忘れないようにしましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?