This commit is contained in:
vipg
2025-12-26 16:23:11 +08:00
parent 7884c77d69
commit 8565890f8f

View File

@@ -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 中,写入规则为则追加到""部署完成"日志上面。