Database Sync

When spreadsheets stop scaling: move marketplace data into PostgreSQL

A practical guide to designing your first Spyliner Hub pipeline, from destination access to mappings, write mode, and monitoring.

By the Spyliner team·9 min read

A spreadsheet can be an excellent operating tool. It becomes a poor raw-data layer when several stores, long histories, dashboards, and internal applications all depend on the same file. That is usually the moment PostgreSQL starts to make sense.

Spyliner Hub connects a marketplace dataset to an existing PostgreSQL table. The important part is not clicking through the wizard—it is making three good decisions about table shape, field mapping, and how repeated records should be written.

01

Use the right destination

PostgreSQL is useful when the data has several consumers

Choose Database Sync when BI dashboards, transformation jobs, internal tools, or multiple teams need a stable source. Keep Google Sheets when people mainly need a flexible, visible workspace.

For a first pipeline, start with one store and one dataset in a non-critical table. Prove the shape and update behavior before repeating it across every account.

02

Security before convenience

Create a destination you would be comfortable running in production

  • ✓Use a dedicated database role with only the required schema and table access.
  • ✓Make the database reachable through an approved network path; do not expose it broadly for convenience.
  • ✓Create compatible destination columns for the marketplace fields you actually need.
  • ✓Keep connection strings out of tickets, screenshots, source code, and chat messages.
03

Inside the Hub workflow

Build and test the source-to-table mapping

  1. 1

    Add PostgreSQL

    Open Destinations, add PostgreSQL, enter a clear name and connection details, then test and save it.

  2. 2

    Choose the source

    Open Syncs, create a sync, and select the connected store and dataset.

  3. 3

    Select the table

    Choose the destination, schema, and existing table after Hub inspects its columns.

  4. 4

    Map and test

    Match source fields to compatible columns and run Test write access before continuing.

  5. 5

    Set the schedule

    Review the configuration, choose the schedule, and create the sync.

04

The decision that shapes repeats

Use upsert for changing records; insert-only for an append log

Orders and performance records often change after they first appear. Upsert inserts new rows and updates a matching row using a conflict key. The mapped destination columns need a compatible unique constraint or index.

Insert-only leaves existing rows untouched and appends incoming records, subject to PostgreSQL constraints. Use it when that immutable, append-style behavior is intentional—not simply because it sounds safer.

  • ✓Map spylinerSyncKey to text or varchar when it is the default record identity.
  • ✓Keep the identity column unique when using it as the upsert conflict target.
  • ✓Document the write mode and owner so future changes are deliberate.

Quick answers

Questions people usually ask

Does Spyliner Hub support MySQL or a warehouse?+

PostgreSQL is the currently supported database destination.

Is a manual Hub run configured separately?+

No. Manual and scheduled runs use the same saved source, mapping, destination, and write mode.

Which write mode should I use for orders?+

Usually upsert, because status and other order fields can change. Confirm that your conflict key has a compatible unique constraint.