Erweitere Schema fuer Shopify Delta Import
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user