postgresql - Heroku Postgres 删除触发器未通过 Heroku Connect 复制到 Salesforce

标签 postgresql heroku salesforce connect heroku-postgres

Heroku Postgres 删除触发器正在触发并成功删除其目标 Postgres 行,但删除未通过 Heroku Connect 同步到 Salesforce。当手动完成相同的删除时,它会毫无问题地同步到 Salesforce。

对于需要通过 Heroku Connect 同步到 Salesforce 的 Postgres 删除触发器,是否有任何特殊注意事项,例如,在执行删除之前设置某些字段?

最佳答案

来自 Heroku 支持...

Connect 使用一个几乎完全未使用的名为 xmlbinary 的 Postgres session 变量作为标志,以防止 Connect 自己对表的写入触发额外的 _trigger_log 条目。如果这些删除是由于 Connect 事件而发生的(因此在 Connect 数据库连接的上下文中执行),Connect 可能会看到此 xmlbinary 变量并忽略更改。 如果您可以在触发器持续时间内将 xmlbinary 的值更改为 base64,则应该修复它。看起来像这样:

CREATE OR REPLACE FUNCTION foo() RETURNS TRIGGER AS $$
DECLARE 
  oldxmlbinary varchar;
BEGIN
  -- Save old value
  oldxmlbinary := get_xmlbinary();

  -- Change value to ensure writing to _trigger_log is enabled
  SET SESSION xmlbinary TO 'base64';

  -- Perform your trigger functions here

  -- Reset the value
  EXECUTE 'SET SESSION xmlbinary TO ' || oldxmlbinary;

  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

关于postgresql - Heroku Postgres 删除触发器未通过 Heroku Connect 复制到 Salesforce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543809/

相关文章:

ruby-on-rails - Rails 查询何时调用对 PostGreSQL 的 EXPLAIN 查询?

java - 从 Spring Web 应用程序捕获用户名以供触发器使用

postgresql - 在 Postgres 13.1 中禁用逻辑复制语句的日志记录

python - 在推送到 S3 之前,是否有更干净的方法来旋转通过 Flask 上传的智能手机图像?

node.js - package.json 脚本在 heroku 上失败

swift - 从新创建的 salesforce 对象中检索对象 ID

null - 如何将 'blank' 分配给 Salesforce 中的小数字段

python - 使用没有 SQLAlchemy 的 psycopg2 将 Pandas 数据框转换为 PostgreSQL 表?

salesforce - 有未完成的工作待处理。请在调用前提交或回滚

ruby-on-rails - 如何 rake 数据库 :migrate on a Heroku staging pipeline?