Erweitere Schema fuer Shopify Delta Import

This commit is contained in:
2026-08-12 17:31:37 +02:00
parent 769f448332
commit fd00a851ed
3 changed files with 182 additions and 0 deletions
@@ -0,0 +1,68 @@
BEGIN;
-- Additive Shopify delta-sync identities. Existing Wix and direct orders,
-- their lines and their lot allocations remain unchanged.
ALTER TABLE sales_order
ADD COLUMN IF NOT EXISTS shopify_order_gid TEXT,
ADD COLUMN IF NOT EXISTS shopify_order_name TEXT,
ADD COLUMN IF NOT EXISTS shopify_created_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS shopify_updated_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS shopify_financial_status TEXT,
ADD COLUMN IF NOT EXISTS shopify_fulfillment_status TEXT;
ALTER TABLE sales_order_line
ADD COLUMN IF NOT EXISTS shopify_line_item_gid TEXT,
ADD COLUMN IF NOT EXISTS shopify_variant_gid TEXT,
ADD COLUMN IF NOT EXISTS shopify_product_gid TEXT,
ADD COLUMN IF NOT EXISTS sku TEXT;
ALTER TABLE external_item_alias
ADD COLUMN IF NOT EXISTS shopify_product_gid TEXT,
ADD COLUMN IF NOT EXISTS shopify_variant_gid TEXT;
CREATE TABLE IF NOT EXISTS party_external_identity (
id BIGSERIAL PRIMARY KEY,
party_id BIGINT NOT NULL REFERENCES party(id) ON DELETE CASCADE,
source_system TEXT NOT NULL,
external_id TEXT NOT NULL,
observed_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
CONSTRAINT uq_party_external_identity_source_external UNIQUE (source_system, external_id)
);
ALTER TABLE sales_order
DROP CONSTRAINT IF EXISTS chk_sales_order_source;
ALTER TABLE sales_order
ADD CONSTRAINT chk_sales_order_source
CHECK (order_source IN ('wix', 'direct', 'shopify'));
ALTER TABLE sales_order
DROP CONSTRAINT IF EXISTS chk_sales_order_payment_status;
ALTER TABLE sales_order
ADD CONSTRAINT chk_sales_order_payment_status
CHECK (payment_status IN ('pending', 'authorized', 'paid', 'partially_refunded', 'refunded', 'voided', 'unknown'));
CREATE UNIQUE INDEX IF NOT EXISTS uq_sales_order_shopify_order_gid
ON sales_order(shopify_order_gid)
WHERE shopify_order_gid IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uq_sales_order_line_shopify_line_item_gid
ON sales_order_line(shopify_line_item_gid)
WHERE shopify_line_item_gid IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uq_external_item_alias_shopify_variant_gid
ON external_item_alias(shopify_variant_gid)
WHERE shopify_variant_gid IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_party_external_identity_party
ON party_external_identity(party_id);
CREATE INDEX IF NOT EXISTS idx_sales_order_shopify_updated_at
ON sales_order(shopify_updated_at DESC)
WHERE shopify_order_gid IS NOT NULL;
COMMIT;