init
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
DO $$
|
||||
BEGIN
|
||||
IF to_regclass('sales_orders_p') IS NULL THEN
|
||||
EXECUTE $q$
|
||||
CREATE TABLE sales_orders_p (
|
||||
LIKE sales_orders INCLUDING ALL
|
||||
) PARTITION BY RANGE (order_date)
|
||||
$q$;
|
||||
END IF;
|
||||
|
||||
IF to_regclass('purchase_orders_p') IS NULL THEN
|
||||
EXECUTE $q$
|
||||
CREATE TABLE purchase_orders_p (
|
||||
LIKE purchase_orders INCLUDING ALL
|
||||
) PARTITION BY RANGE (order_date)
|
||||
$q$;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
d date := date_trunc('month', now())::date;
|
||||
next_d date := (date_trunc('month', now()) + interval '1 month')::date;
|
||||
part_name text;
|
||||
BEGIN
|
||||
part_name := format('sales_orders_p_%s', to_char(d, 'YYYYMM'));
|
||||
EXECUTE format(
|
||||
'CREATE TABLE IF NOT EXISTS %I PARTITION OF sales_orders_p FOR VALUES FROM (%L) TO (%L)',
|
||||
part_name, d, next_d
|
||||
);
|
||||
|
||||
part_name := format('purchase_orders_p_%s', to_char(d, 'YYYYMM'));
|
||||
EXECUTE format(
|
||||
'CREATE TABLE IF NOT EXISTS %I PARTITION OF purchase_orders_p FOR VALUES FROM (%L) TO (%L)',
|
||||
part_name, d, next_d
|
||||
);
|
||||
END $$;
|
||||
Reference in New Issue
Block a user