add
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
以下是我的工程目录组织。
|
|
||||||
```
|
|
||||||
|
|
||||||
.
|
.
|
||||||
├── LICENSE
|
├── LICENSE
|
||||||
├── README.md
|
├── README.md
|
||||||
├── create
|
├── create
|
||||||
│ └── create.py
|
│ ├── README.md
|
||||||
|
│ ├── create.sh
|
||||||
|
│ └── create_table.py
|
||||||
├── docker-compose.yaml
|
├── docker-compose.yaml
|
||||||
├── infra
|
├── infra
|
||||||
│ └── postgres
|
│ └── postgres
|
||||||
@@ -14,87 +17,4 @@
|
|||||||
│ ├── 01_uuid_v7_setup.sql
|
│ ├── 01_uuid_v7_setup.sql
|
||||||
│ ├── 02_create_function.sql
|
│ ├── 02_create_function.sql
|
||||||
│ └── 03_create_table.sql
|
│ └── 03_create_table.sql
|
||||||
└── services
|
└── services
|
||||||
└── cn_futures_trading_records
|
|
||||||
├── README.md
|
|
||||||
├── dev.sh
|
|
||||||
└── src
|
|
||||||
├── Dockerfile
|
|
||||||
├── crud
|
|
||||||
│ └── create.go
|
|
||||||
├── go.mod
|
|
||||||
├── go.sum
|
|
||||||
├── infra
|
|
||||||
│ ├── launch.go
|
|
||||||
│ ├── logger.go
|
|
||||||
│ └── postgres.go
|
|
||||||
├── main.go
|
|
||||||
└── model
|
|
||||||
└── payload.go
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
以下是 03_create_table.sql 的内容:
|
|
||||||
|
|
||||||
```sql
|
|
||||||
-- =========================================================
|
|
||||||
-- table.sql (PostgreSQL 17.4+)
|
|
||||||
-- =========================================================
|
|
||||||
\pset pager off
|
|
||||||
\timing on
|
|
||||||
\c postgres;
|
|
||||||
|
|
||||||
CREATE EXTENSION IF NOT EXISTS "moddatetime" SCHEMA public;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
RAISE NOTICE '🚀============ 数据库表部署开始 ============🚀';
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- create table logic
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
RAISE NOTICE '============ 数据库表部署完成 ============';
|
|
||||||
END $$;
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
我需要你帮我在/create/create.py 中实现一下逻辑:
|
|
||||||
1、定义一个变量参数,方便我调整表名称。
|
|
||||||
|
|
||||||
2、通过我定义的表名称把一下的替换以下的 `tabe_name`关键字。
|
|
||||||
|
|
||||||
```sql
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM information_schema.tables
|
|
||||||
WHERE table_schema = 'public'
|
|
||||||
AND table_name = 'tabe_name'
|
|
||||||
) THEN
|
|
||||||
CREATE TABLE tabe_name (
|
|
||||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY, -- id
|
|
||||||
payload JSONB NOT NULL, -- 数据
|
|
||||||
deleted BOOLEAN NOT NULL DEFAULT FALSE, -- 删除状态
|
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 记录创建时间
|
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP -- 记录修改时间
|
|
||||||
);
|
|
||||||
|
|
||||||
-- 3 触发器:自动刷新 updated_at
|
|
||||||
CREATE TRIGGER trg_tabe_name_at
|
|
||||||
BEFORE UPDATE ON tabe_name
|
|
||||||
FOR EACH ROW
|
|
||||||
EXECUTE FUNCTION moddatetime(updated_at);
|
|
||||||
|
|
||||||
RAISE NOTICE 'tabe_name 表已创建';
|
|
||||||
ELSE
|
|
||||||
RAISE NOTICE 'tabe_name 表已存在,跳过';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
```
|
|
||||||
|
|
||||||
3、拿到2中的处理结果,写入 03_create_table.sql 中,写入规则为则追加到""部署完成"日志上面。
|
|
||||||
Reference in New Issue
Block a user