Compare commits
2 Commits
12cab7473a
...
e62c6ac8ee
| Author | SHA1 | Date | |
|---|---|---|---|
| e62c6ac8ee | |||
| 18f4970059 |
@@ -51,13 +51,15 @@ CREATE TABLE products (
|
|||||||
baskets INT UNSIGNED DEFAULT 0,
|
baskets INT UNSIGNED DEFAULT 0,
|
||||||
notifies INT UNSIGNED DEFAULT 0,
|
notifies INT UNSIGNED DEFAULT 0,
|
||||||
date_last_sold DATE,
|
date_last_sold DATE,
|
||||||
|
updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (pid),
|
PRIMARY KEY (pid),
|
||||||
INDEX idx_sku (SKU),
|
INDEX idx_sku (SKU),
|
||||||
INDEX idx_vendor (vendor),
|
INDEX idx_vendor (vendor),
|
||||||
INDEX idx_brand (brand),
|
INDEX idx_brand (brand),
|
||||||
INDEX idx_location (location),
|
INDEX idx_location (location),
|
||||||
INDEX idx_total_sold (total_sold),
|
INDEX idx_total_sold (total_sold),
|
||||||
INDEX idx_date_last_sold (date_last_sold)
|
INDEX idx_date_last_sold (date_last_sold),
|
||||||
|
INDEX idx_updated (updated)
|
||||||
) ENGINE=InnoDB;
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
-- Create categories table with hierarchy support
|
-- Create categories table with hierarchy support
|
||||||
@@ -118,6 +120,7 @@ CREATE TABLE IF NOT EXISTS orders (
|
|||||||
customer_name VARCHAR(100),
|
customer_name VARCHAR(100),
|
||||||
status VARCHAR(20) DEFAULT 'pending',
|
status VARCHAR(20) DEFAULT 'pending',
|
||||||
canceled TINYINT(1) DEFAULT 0,
|
canceled TINYINT(1) DEFAULT 0,
|
||||||
|
updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
UNIQUE KEY unique_order_line (order_number, pid),
|
UNIQUE KEY unique_order_line (order_number, pid),
|
||||||
KEY order_number (order_number),
|
KEY order_number (order_number),
|
||||||
@@ -125,7 +128,8 @@ CREATE TABLE IF NOT EXISTS orders (
|
|||||||
KEY customer (customer),
|
KEY customer (customer),
|
||||||
KEY date (date),
|
KEY date (date),
|
||||||
KEY status (status),
|
KEY status (status),
|
||||||
INDEX idx_orders_metrics (pid, date, canceled)
|
INDEX idx_orders_metrics (pid, date, canceled),
|
||||||
|
INDEX idx_updated (updated)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
-- Create purchase_orders table with its indexes
|
-- Create purchase_orders table with its indexes
|
||||||
@@ -150,6 +154,7 @@ CREATE TABLE purchase_orders (
|
|||||||
last_received_date DATE COMMENT 'Date of most recent receiving',
|
last_received_date DATE COMMENT 'Date of most recent receiving',
|
||||||
received_by VARCHAR(100) COMMENT 'Name of person who first received this PO line',
|
received_by VARCHAR(100) COMMENT 'Name of person who first received this PO line',
|
||||||
receiving_history JSON COMMENT 'Array of receiving records with qty, date, cost, receiving_id, and alt_po flag',
|
receiving_history JSON COMMENT 'Array of receiving records with qty, date, cost, receiving_id, and alt_po flag',
|
||||||
|
updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
FOREIGN KEY (pid) REFERENCES products(pid),
|
FOREIGN KEY (pid) REFERENCES products(pid),
|
||||||
INDEX idx_po_id (po_id),
|
INDEX idx_po_id (po_id),
|
||||||
INDEX idx_vendor (vendor),
|
INDEX idx_vendor (vendor),
|
||||||
@@ -159,6 +164,7 @@ CREATE TABLE purchase_orders (
|
|||||||
INDEX idx_po_metrics (pid, date, receiving_status, received_date),
|
INDEX idx_po_metrics (pid, date, receiving_status, received_date),
|
||||||
INDEX idx_po_product_date (pid, date),
|
INDEX idx_po_product_date (pid, date),
|
||||||
INDEX idx_po_product_status (pid, status),
|
INDEX idx_po_product_status (pid, status),
|
||||||
|
INDEX idx_updated (updated),
|
||||||
UNIQUE KEY unique_po_product (po_id, pid)
|
UNIQUE KEY unique_po_product (po_id, pid)
|
||||||
) ENGINE=InnoDB;
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -96,6 +96,7 @@ async function importOrders(prodConnection, localConnection, incrementalUpdate =
|
|||||||
SELECT COLUMN_NAME
|
SELECT COLUMN_NAME
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
WHERE TABLE_NAME = 'orders'
|
WHERE TABLE_NAME = 'orders'
|
||||||
|
AND COLUMN_NAME != 'updated' -- Exclude the updated column
|
||||||
ORDER BY ORDINAL_POSITION
|
ORDER BY ORDINAL_POSITION
|
||||||
`);
|
`);
|
||||||
const columnNames = columns.map(col => col.COLUMN_NAME);
|
const columnNames = columns.map(col => col.COLUMN_NAME);
|
||||||
|
|||||||
@@ -339,6 +339,7 @@ async function importProducts(prodConnection, localConnection, incrementalUpdate
|
|||||||
SELECT COLUMN_NAME
|
SELECT COLUMN_NAME
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
WHERE TABLE_NAME = 'products'
|
WHERE TABLE_NAME = 'products'
|
||||||
|
AND COLUMN_NAME != 'updated' -- Exclude the updated column
|
||||||
ORDER BY ORDINAL_POSITION
|
ORDER BY ORDINAL_POSITION
|
||||||
`);
|
`);
|
||||||
const columnNames = columns.map(col => col.COLUMN_NAME);
|
const columnNames = columns.map(col => col.COLUMN_NAME);
|
||||||
@@ -615,6 +616,7 @@ async function importMissingProducts(prodConnection, localConnection, missingPid
|
|||||||
SELECT COLUMN_NAME
|
SELECT COLUMN_NAME
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
WHERE TABLE_NAME = 'products'
|
WHERE TABLE_NAME = 'products'
|
||||||
|
AND COLUMN_NAME != 'updated' -- Exclude the updated column
|
||||||
ORDER BY ORDINAL_POSITION
|
ORDER BY ORDINAL_POSITION
|
||||||
`);
|
`);
|
||||||
const columnNames = columns.map((col) => col.COLUMN_NAME);
|
const columnNames = columns.map((col) => col.COLUMN_NAME);
|
||||||
|
|||||||
@@ -33,16 +33,15 @@ async function importPurchaseOrders(prodConnection, localConnection, incremental
|
|||||||
status: "running",
|
status: "running",
|
||||||
});
|
});
|
||||||
|
|
||||||
// Get column names for the insert
|
// Get column names first
|
||||||
const [columns] = await localConnection.query(`
|
const [columns] = await localConnection.query(`
|
||||||
SELECT COLUMN_NAME
|
SELECT COLUMN_NAME
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
WHERE TABLE_NAME = 'purchase_orders'
|
WHERE TABLE_NAME = 'purchase_orders'
|
||||||
|
AND COLUMN_NAME != 'updated' -- Exclude the updated column
|
||||||
ORDER BY ORDINAL_POSITION
|
ORDER BY ORDINAL_POSITION
|
||||||
`);
|
`);
|
||||||
const columnNames = columns
|
const columnNames = columns.map(col => col.COLUMN_NAME);
|
||||||
.map((col) => col.COLUMN_NAME)
|
|
||||||
.filter((name) => name !== "id");
|
|
||||||
|
|
||||||
// Build incremental conditions
|
// Build incremental conditions
|
||||||
const incrementalWhereClause = incrementalUpdate
|
const incrementalWhereClause = incrementalUpdate
|
||||||
|
|||||||
Reference in New Issue
Block a user