Google Cloud PostgreSQL
Supports:
- ✅ Models
- ✅ Model sync destination
- ✅ Bulk sync source
- ✅ Bulk sync destination
Connection
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
change_detection | boolean | Use logical replication for bulk syncs ↓ | optional |
connection_name | string | Cloud SQL connection name Takes the form of project:region:instance | required |
credentials | string | Service account key | required |
database | string | Database | required |
password | string | Password May be omitted when authenticating to Postgres using the service account key. | optional |
username | string | Username | optional |
change_detection
When change_detection is true:
| Name | Type | Description | Required |
|---|---|---|---|
publication | string | Publication | required |
{"name": "Google Cloud PostgreSQL connection","type": "googlecloudsql","configuration": {"change_detection": true,"connection_name": "project:region:instance","credentials": "","database": "sampledb","password": "secret","publication": "polytomic","username": "cloudsql"}}
Example
{"name": "Google Cloud PostgreSQL connection","type": "googlecloudsql","configuration": {"change_detection": false,"connection_name": "project:region:instance","credentials": "","database": "sampledb","password": "secret","username": "cloudsql"}}
Model Sync
Source
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
query | string | optional | |
table | string | Table | optional |
view | string | View | optional |
Example
{..."configuration": {"query": "SELECT * from users","table": "users","view": "active_users"}}
Target
Google Cloud PostgreSQL connections may be used as the destination in a model sync.
All targets
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
created_column | string | ’Created at’ timestamp column | optional |
preserve_table_on_resync | boolean | Preserve destination table when resyncing | optional |
updated_column | string | ’Updated at’ timestamp column | optional |
write_null_values | boolean | Copy null values When enabled updates will set fields to NULL when the source value is null | optional |
write_record_timestamps | boolean | Write row timestamp metadata | optional |
Example
{..."target": {"configuration": {"created_column": "","preserve_table_on_resync": false,"updated_column": "","write_null_values": false,"write_record_timestamps": false}}}
Target creation
Google Cloud PostgreSQL connections may be used to create a new target for a model sync. The following parameters are required to create a new target:
| NAME | DESCRIPTION | ENUM |
|---|---|---|
| name | Table name | false |
Bulk Sync
Source
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
automatically_add_new_fields | boolean | Automatically add new fields on selected tables | optional |
automatically_add_new_objects | boolean | Automatically add new tables | optional |
mirror_publication_selections | boolean | Mirror table and column selection with database publication | optional |
mirror_tables_without_unique_id | boolean | Mirror table without a unique identifier If set to true | optional |
replication_slot | string | Replication slot Leave blank to allow Polytomic to manage a replication slot for this sync. | optional |
Example
{..."source_configuration": {"automatically_add_new_fields": false,"automatically_add_new_objects": false,"mirror_publication_selections": false,"mirror_tables_without_unique_id": false,"replication_slot": "polytomic"}}
Destination
Configuration
| Name | Type | Description | Required |
|---|---|---|---|
advanced | object | optional | |
mirror_schemas | boolean | Mirror schemas | optional |
schema | string | Output schema | optional |
Example
{..."destination_configuration": {"advanced": {"empty_strings_null": true,"hard_deletes": false,"initial_execution": "rebuild","table_prefix": "","truncate_existing": false},"mirror_schemas": false,"schema": "schema"}}
Type handling
Destination types
| POLYTOMIC TYPE | GOOGLE CLOUD POSTGRESQL TYPE |
|---|---|
array<> | JSON |
bigint | INT8 |
boolean | BOOL |
date | DATE |
datetime | TIMESTAMP |
decimal(precision, scale) | NUMERIC(precision,scale) |
double | DOUBLE PRECISION |
int | INT4 |
json | JSON |
jsonarray | JSON |
number | NUMERIC |
object{} | JSON |
single | REAL |
smallint | INT2 |
string | TEXT |
time | TIME |
Source types
| GOOGLE CLOUD POSTGRESQL TYPE | POLYTOMIC TYPE |
|---|---|
ANYARRAY | jsonarray |
CIDR | string |
CSTRING | string |
DATE | date |
DOUBLE PRECISION | double |
FLOAT | single |
FLOAT4 | single |
FLOAT8 | double |
INET | string |
INT | int |
INT2 | smallint |
INT4 | int |
INT8 | bigint |
INTERVAL | string |
JSON | json |
JSONB | json |
MACADDR | string |
MONEY | number |
NAME | string |
NUMERIC(precision, scale) | decimal(precision, scale) |
REAL | single |
TEXT | string |
TIME | time |
TIMESTAMP | datetime |
TIMESTAMPTZ | datetime_tz |
TIMETZ | time |
UUID | string |
_BOOL | jsonarray |
_BPCHAR | jsonarray |
_BYTEA | jsonarray |
_CHAR | jsonarray |
_CSTRING | jsonarray |
_DATE | jsonarray |
_FLOAT4 | jsonarray |
_FLOAT8 | jsonarray |
_INT2 | jsonarray |
_INT2VECTOR | jsonarray |
_INT4 | jsonarray |
_INT8 | jsonarray |
_JSON | jsonarray |
_JSONB | jsonarray |
_LSEG | jsonarray |
_MONEY | jsonarray |
_NAME | jsonarray |
_NUMERIC | jsonarray |
_PATH | jsonarray |
_TEXT | jsonarray |
_TIME | jsonarray |
_TIMESTAMP | jsonarray |
_TIMESTAMPTZ | jsonarray |
_TIMETZ | jsonarray |
_UUID | jsonarray |
_VARCHAR | jsonarray |
_XML | jsonarray |
