mock sync group editing: made tables columns more consistent; initialize database rows upon editing
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
BEGIN;
|
||||
|
||||
|
||||
CREATE TABLE mock.sync_group_editing (
|
||||
account_id INTEGER PRIMARY KEY REFERENCES mock.accounts ON DELETE CASCADE,
|
||||
sync_group_id INTEGER NOT NULL REFERENCES mock.sync_groups ON DELETE CASCADE,
|
||||
|
||||
UNIQUE (account_id, sync_group_id),
|
||||
UNIQUE (sync_group_id)
|
||||
);
|
||||
|
||||
CREATE TABLE mock.sync_group_editing_listing_order_indexes (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL CHECK (order_index >= 0),
|
||||
|
||||
PRIMARY KEY (account_id, order_index)
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_amazon_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_amazon ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_big_cartel_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_big_cartel ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_ebay_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_ebay ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_ecwid_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_ecwid ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_etsy_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_etsy ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_shopify_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_shopify ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_square_online_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_square_online ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_squarespace_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_squarespace ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_tiktok_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_tiktok ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_walmart_marketplace_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_walmart_marketplace ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_wix_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_wix ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_woo_commerce_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_woo_commerce ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE mock.shop_zoho_sync_group_editing_listings (
|
||||
account_id INTEGER NOT NULL REFERENCES mock.sync_group_editing ON DELETE CASCADE,
|
||||
order_index INTEGER NOT NULL,
|
||||
shop_id TEXT NOT NULL,
|
||||
listing_id TEXT,
|
||||
|
||||
PRIMARY KEY (account_id, order_index),
|
||||
UNIQUE (account_id, shop_id),
|
||||
FOREIGN KEY (account_id, shop_id) REFERENCES mock.shop_zoho ON DELETE CASCADE,
|
||||
FOREIGN KEY (account_id, order_index) REFERENCES mock.sync_group_editing_listing_order_indexes ON DELETE CASCADE
|
||||
);
|
||||
|
||||
|
||||
|
||||
GRANT ALL ON SCHEMA mock TO PUBLIC;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user