summaryrefslogtreecommitdiff
path: root/src/postgres
diff options
context:
space:
mode:
Diffstat (limited to 'src/postgres')
-rw-r--r--src/postgres/Dockerfile8
-rw-r--r--src/postgres/init.sql37
2 files changed, 45 insertions, 0 deletions
diff --git a/src/postgres/Dockerfile b/src/postgres/Dockerfile
new file mode 100644
index 0000000..faf489d
--- /dev/null
+++ b/src/postgres/Dockerfile
@@ -0,0 +1,8 @@
+# Copyright The OpenTelemetry Authors
+# SPDX-License-Identifier: Apache-2.0
+
+FROM postgres:17.6
+
+COPY ./src/postgres/init.sql /docker-entrypoint-initdb.d/init.sql
+
+EXPOSE ${POSTGRES_PORT}
diff --git a/src/postgres/init.sql b/src/postgres/init.sql
new file mode 100644
index 0000000..82f37f2
--- /dev/null
+++ b/src/postgres/init.sql
@@ -0,0 +1,37 @@
+-- Copyright The OpenTelemetry Authors
+-- SPDX-License-Identifier: Apache-2.0
+
+CREATE USER otelu WITH PASSWORD 'otelp';
+
+
+-- Create a table
+CREATE TABLE "order" (
+ order_id TEXT PRIMARY KEY
+);
+
+CREATE TABLE shipping (
+ shipping_tracking_id TEXT PRIMARY KEY,
+ shipping_cost_currency_code TEXT NOT NULL,
+ shipping_cost_units BIGINT NOT NULL,
+ shipping_cost_nanos INT NOT NULL,
+ street_address TEXT,
+ city TEXT,
+ state TEXT,
+ country TEXT,
+ zip_code TEXT,
+ order_id TEXT NOT NULL,
+ FOREIGN KEY (order_id) REFERENCES "order"(order_id) ON DELETE CASCADE
+);
+
+CREATE TABLE orderitem (
+ item_cost_currency_code TEXT NOT NULL,
+ item_cost_units BIGINT NOT NULL,
+ item_cost_nanos INT NOT NULL,
+ product_id TEXT NOT NULL,
+ quantity INT NOT NULL,
+ order_id TEXT NOT NULL,
+ PRIMARY KEY (order_id, product_id),
+ FOREIGN KEY (order_id) REFERENCES "order"(order_id) ON DELETE CASCADE
+);
+
+GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO otelu;