From a358d75c93c0cc61386522e61c4b5a7ba82e0a44 Mon Sep 17 00:00:00 2001 From: zufar-sunagatov Date: Wed, 19 Jul 2023 13:52:56 +0100 Subject: [PATCH 1/2] 20.07.2023.part1.create-cart-table.sql and 20.07.2023.part2.create-cart-item-table.sql were added --- src/main/resources/application.yaml | 2 +- src/main/resources/db/changelog-master.yaml | 3 +++ .../19.07.2023.create-product-table.sql} | 0 .../version-1.0/20.07.2023.part1.create-cart-table.sql | 10 ++++++++++ .../20.07.2023.part2.create-cart-item-table.sql | 7 +++++++ .../version-1.0/changelog-master-version-1.0.yaml | 7 +++++++ src/main/resources/db/db.changelog-master.yaml | 3 --- 7 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/db/changelog-master.yaml rename src/main/resources/db/changelog/{19.07.2023.product-table-was-created.sql => version-1.0/19.07.2023.create-product-table.sql} (100%) create mode 100644 src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql create mode 100644 src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql create mode 100644 src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml delete mode 100644 src/main/resources/db/db.changelog-master.yaml diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index bb49f426..2621c8ef 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -34,7 +34,7 @@ spring: ddl-auto: validate liquibase: enabled: true - change-log: classpath:db/db.changelog-master.yaml + change-log: classpath:db/changelog-master.yaml url: jdbc:postgresql://localhost:5432/testdb user: postgres password: postgres diff --git a/src/main/resources/db/changelog-master.yaml b/src/main/resources/db/changelog-master.yaml new file mode 100644 index 00000000..9eda9b18 --- /dev/null +++ b/src/main/resources/db/changelog-master.yaml @@ -0,0 +1,3 @@ +databaseChangeLog: + - include: + file: db/changelog/version-1.0/changelog-master-version-1.0.yaml \ No newline at end of file diff --git a/src/main/resources/db/changelog/19.07.2023.product-table-was-created.sql b/src/main/resources/db/changelog/version-1.0/19.07.2023.create-product-table.sql similarity index 100% rename from src/main/resources/db/changelog/19.07.2023.product-table-was-created.sql rename to src/main/resources/db/changelog/version-1.0/19.07.2023.create-product-table.sql diff --git a/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql b/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql new file mode 100644 index 00000000..f6f50f9d --- /dev/null +++ b/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql @@ -0,0 +1,10 @@ +CREATE TABLE IF NOT EXISTS cart +( + id UUID PRIMARY KEY, + user_id UUID NOT NULL, + items_quantity INT NOT NULL CHECK (items_quantity >= 0), + products_quantity INT NOT NULL CHECK (products_quantity >= 0), + total_price DECIMAL NOT NULL CHECK (total_price > 0), + created_at TIMESTAMPTZ, + closed_at TIMESTAMPTZ +); \ No newline at end of file diff --git a/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql b/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql new file mode 100644 index 00000000..9a246154 --- /dev/null +++ b/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS cart_item +( + id UUID PRIMARY KEY, + cart_id UUID NOT NULL, + product_id UUID NOT NULL, + products_quantity INT NOT NULL CHECK (products_quantity >= 0) +) \ No newline at end of file diff --git a/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml b/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml new file mode 100644 index 00000000..44cb3684 --- /dev/null +++ b/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml @@ -0,0 +1,7 @@ +databaseChangeLog: + - include: + file: db/changelog/version-1.0/19.07.2023.create-product-table.sql + - include: + file: db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql + - include: + file: db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql \ No newline at end of file diff --git a/src/main/resources/db/db.changelog-master.yaml b/src/main/resources/db/db.changelog-master.yaml deleted file mode 100644 index a8a74ffd..00000000 --- a/src/main/resources/db/db.changelog-master.yaml +++ /dev/null @@ -1,3 +0,0 @@ -databaseChangeLog: - - include: - file: db/changelog/19.07.2023.product-table-was-created.sql \ No newline at end of file From 584187074b2eabe059b33b0263cf9ef06bc7cb7f Mon Sep 17 00:00:00 2001 From: zufar-sunagatov Date: Wed, 19 Jul 2023 15:36:23 +0100 Subject: [PATCH 2/2] Added some new constraints for timestamp attributes. --- ... => 20.07.2023.part1.create-shopping-session-table.sql} | 7 +++---- ...0.07.2023.part2.create-shopping-session-item-table.sql} | 2 +- .../version-1.0/changelog-master-version-1.0.yaml | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) rename src/main/resources/db/changelog/version-1.0/{20.07.2023.part1.create-cart-table.sql => 20.07.2023.part1.create-shopping-session-table.sql} (55%) rename src/main/resources/db/changelog/version-1.0/{20.07.2023.part2.create-cart-item-table.sql => 20.07.2023.part2.create-shopping-session-item-table.sql} (81%) diff --git a/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql b/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-shopping-session-table.sql similarity index 55% rename from src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql rename to src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-shopping-session-table.sql index f6f50f9d..0820c1a4 100644 --- a/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql +++ b/src/main/resources/db/changelog/version-1.0/20.07.2023.part1.create-shopping-session-table.sql @@ -1,10 +1,9 @@ -CREATE TABLE IF NOT EXISTS cart +CREATE TABLE IF NOT EXISTS shopping_session ( id UUID PRIMARY KEY, user_id UUID NOT NULL, items_quantity INT NOT NULL CHECK (items_quantity >= 0), products_quantity INT NOT NULL CHECK (products_quantity >= 0), - total_price DECIMAL NOT NULL CHECK (total_price > 0), - created_at TIMESTAMPTZ, - closed_at TIMESTAMPTZ + created_at TIMESTAMPTZ NOT NULL CHECK (created_at < closed_at), + closed_at TIMESTAMPTZ NOT NULL CHECK (closed_at > created_at) ); \ No newline at end of file diff --git a/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql b/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-shopping-session-item-table.sql similarity index 81% rename from src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql rename to src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-shopping-session-item-table.sql index 9a246154..cdd2ccb0 100644 --- a/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql +++ b/src/main/resources/db/changelog/version-1.0/20.07.2023.part2.create-shopping-session-item-table.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS cart_item +CREATE TABLE IF NOT EXISTS shopping_session_item ( id UUID PRIMARY KEY, cart_id UUID NOT NULL, diff --git a/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml b/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml index 44cb3684..4875daa4 100644 --- a/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml +++ b/src/main/resources/db/changelog/version-1.0/changelog-master-version-1.0.yaml @@ -2,6 +2,6 @@ databaseChangeLog: - include: file: db/changelog/version-1.0/19.07.2023.create-product-table.sql - include: - file: db/changelog/version-1.0/20.07.2023.part1.create-cart-table.sql + file: db/changelog/version-1.0/20.07.2023.part1.create-shopping-session-table.sql - include: - file: db/changelog/version-1.0/20.07.2023.part2.create-cart-item-table.sql \ No newline at end of file + file: db/changelog/version-1.0/20.07.2023.part2.create-shopping-session-item-table.sql \ No newline at end of file