add
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
以下是我的工程目录组织。
|
||||
```
|
||||
|
||||
|
||||
|
||||
.
|
||||
├── LICENSE
|
||||
├── README.md
|
||||
├── create
|
||||
│ └── create.py
|
||||
│ ├── README.md
|
||||
│ ├── create.sh
|
||||
│ └── create_table.py
|
||||
├── docker-compose.yaml
|
||||
├── infra
|
||||
│ └── postgres
|
||||
@@ -15,86 +18,3 @@
|
||||
│ ├── 02_create_function.sql
|
||||
│ └── 03_create_table.sql
|
||||
└── 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