subzero-starter-kit 项目教程
1. 项目的目录结构及介绍
subzero-starter-kit/
├── db/
│ ├── src/
│ │ ├── authorization/
│ │ │ └── privileges.sql
│ │ └── init.sh
│ └── migrations/
├── .env
├── docker-compose.yml
└── README.md
目录结构介绍
- db/: 数据库相关文件夹,包含数据库的初始化脚本和迁移文件。
- src/: 数据库源代码文件夹,包含数据库的初始化脚本和权限配置。
- authorization/: 权限配置文件夹,包含数据库权限相关的SQL文件。
- privileges.sql: 数据库权限配置文件。
- init.sh: 数据库初始化脚本。
- authorization/: 权限配置文件夹,包含数据库权限相关的SQL文件。
- migrations/: 数据库迁移文件夹,包含数据库的迁移脚本。
- src/: 数据库源代码文件夹,包含数据库的初始化脚本和权限配置。
- .env: 项目的配置文件,包含Docker和subzero-cli的配置。
- docker-compose.yml: Docker Compose配置文件,用于定义和运行多容器Docker应用程序。
- README.md: 项目说明文件,包含项目的简介和使用说明。
2. 项目的启动文件介绍
docker-compose.yml
docker-compose.yml
文件是用于定义和运行多容器Docker应用程序的配置文件。通过该文件,可以一键启动项目所需的所有服务。
version: '3.7'
services:
db:
image: postgres:12
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- ./db/src:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
db/src/init.sh
init.sh
是数据库的初始化脚本,用于在数据库容器启动时执行初始化操作。
#!/bin/bash
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
EOSQL
3. 项目的配置文件介绍
.env
.env
文件是项目的配置文件,包含Docker和subzero-cli的配置。
# Docker specific configs
# use only letters and numbers for the project name
COMPOSE_PROJECT_NAME=subzerostarterkit
# subzero-cli custom settings
# the default diff tool to use when generating migrations
SQL_DIFF_TOOL=migra
# we have a custom log_line_prefix to facilitate log parsing/filtering for subzero-cli
# this is configured in db/src/init.sh
DB_LOG_LINE_MARKER=SBZ
# we want to include only log lines from this "application" (database client)
# FILTER_DB_APP_NAME=subzero
配置文件介绍
- COMPOSE_PROJECT_NAME: Docker Compose项目的名称,用于唯一标识项目。
- SQL_DIFF_TOOL: 用于生成数据库迁移的差异工具,默认使用
migra
。 - DB_LOG_LINE_MARKER: 数据库日志行标记,用于日志解析和过滤。
- FILTER_DB_APP_NAME: 过滤数据库客户端日志的应用名称,可选配置。