feat: 支持通过Flyway自动初始化数据库

- 将 starter 初始化脚本迁移到 db/migration,并保留 V1-V3 作为首批迁移

- 清理旧 sql/initdb 挂载与历史分段 SQL,避免 Docker 启动时重复导库

- 更新 README、应用配置和中间件编排,统一空库启动方式
This commit is contained in:
2026-03-24 12:36:44 +08:00
parent 07d8193e80
commit b1a16ccf18
19 changed files with 149 additions and 2357 deletions

View File

@@ -13,18 +13,17 @@ services:
- --max_connections=500
- --sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
environment:
TZ: ${TZ:-Asia/Shanghai}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_DATABASE: ${MYSQL_DATABASE:-easyflow}
MYSQL_USER: ${MYSQL_USER:-easyflow}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-123456}
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: easyflow
MYSQL_USER: easyflow
MYSQL_PASSWORD: "123456"
ports:
- "${MYSQL_PORT:-3306}:3306"
- "3306:3306"
volumes:
- ./data/mysql:/var/lib/mysql
- ./easyflow/sql/initdb:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${MYSQL_ROOT_PASSWORD:-root}"]
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"]
interval: 10s
timeout: 5s
retries: 10
@@ -34,13 +33,13 @@ services:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/kubesphere/redis:7.2.4-alpine-linuxarm64
container_name: easyflow-redis
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes", "--requirepass", "${REDIS_PASSWORD:-123456}"]
command: ["redis-server", "--appendonly", "yes", "--requirepass", "123456"]
ports:
- "${REDIS_PORT:-6379}:6379"
- "6379:6379"
volumes:
- ./data/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-123456}", "ping"]
test: ["CMD", "redis-cli", "-a", "123456", "ping"]
interval: 10s
timeout: 5s
retries: 10
@@ -51,7 +50,7 @@ services:
container_name: easyflow-etcd
restart: unless-stopped
environment:
TZ: ${TZ:-Asia/Shanghai}
TZ: Asia/Shanghai
ETCD_AUTO_COMPACTION_MODE: revision
ETCD_AUTO_COMPACTION_RETENTION: "1000"
ETCD_QUOTA_BACKEND_BYTES: "4294967296"
@@ -70,12 +69,12 @@ services:
restart: unless-stopped
command: server /data --address ":9000" --console-address ":9001"
environment:
TZ: ${TZ:-Asia/Shanghai}
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-easyflowadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-easyflowadmin123}
TZ: Asia/Shanghai
MINIO_ROOT_USER: easyflowadmin
MINIO_ROOT_PASSWORD: easyflowadmin123
ports:
- "${MINIO_PORT:-9000}:9000"
- "${MINIO_CONSOLE_PORT:-9001}:9001"
- "9000:9000"
- "9001:9001"
volumes:
- ./data/minio:/data
@@ -86,12 +85,12 @@ services:
depends_on:
- minio
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-easyflowadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-easyflowadmin123}
MINIO_ENDPOINT: ${MINIO_ENDPOINT:-http://minio:9000}
MINIO_BUCKETS: ${MINIO_BUCKETS:-easyflow,milvus}
MINIO_PUBLIC_BUCKETS: ${MINIO_PUBLIC_BUCKETS:-easyflow}
MINIO_ALIAS: ${MINIO_ALIAS:-local}
MINIO_ROOT_USER: easyflowadmin
MINIO_ROOT_PASSWORD: easyflowadmin123
MINIO_ENDPOINT: http://minio:9000
MINIO_BUCKETS: easyflow,milvus
MINIO_PUBLIC_BUCKETS: easyflow
MINIO_ALIAS: local
volumes:
- ./scripts/minio/init-minio.sh:/scripts/init-minio.sh:ro
entrypoint: ["/bin/sh", "/scripts/init-minio.sh"]
@@ -106,11 +105,11 @@ services:
environment:
ETCD_ENDPOINTS: etcd:2379
COMMON_STORAGETYPE: minio
MINIO_ADDRESS: ${MILVUS_MINIO_ADDRESS:-minio:9000}
MINIO_ACCESS_KEY_ID: ${MINIO_ROOT_USER:-easyflowadmin}
MINIO_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:-easyflowadmin123}
MINIO_ADDRESS: minio:9000
MINIO_ACCESS_KEY_ID: easyflowadmin
MINIO_SECRET_ACCESS_KEY: easyflowadmin123
MINIO_USE_SSL: "false"
MINIO_BUCKET_NAME: ${MILVUS_MINIO_BUCKET:-milvus}
MINIO_BUCKET_NAME: milvus
depends_on:
etcd:
condition: service_started
@@ -119,7 +118,7 @@ services:
minio-init:
condition: service_completed_successfully
ports:
- "${MILVUS_GRPC_PORT:-19530}:19530"
- "${MILVUS_HTTP_PORT:-9091}:9091"
- "19530:19530"
- "9091:9091"
volumes:
- ./data/milvus:/var/lib/milvus