refactor(data): remove MySQL and SQLite support

Use PostgreSQL as the only database backend across runtime, schema tooling, installation, Compose, and CI. Update regression tests and reject removed drivers explicitly.
This commit is contained in:
elky
2026-09-07 00:09:42 +08:00
parent b5ed802277
commit 2281f2b754
298 changed files with 793 additions and 134804 deletions
+69 -8
View File
@@ -1,4 +1,60 @@
# Aether 单节点部署配置 - PostgreSQL + Redis
# 使用方法: docker compose up -d
services:
postgres:
# OCI index digest for the official multi-architecture postgres:15.19 image.
image: postgres:15.19@sha256:5f72c7b5bd616308ccfd2e74d6be16fb06364e5eecbb815fe9dc6ab9761d2111
container_name: aether-postgres
shm_size: ${POSTGRES_SHM_SIZE:-512mb}
environment:
POSTGRES_DB: aether
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD in .env}
TZ: Asia/Shanghai
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "127.0.0.1:${DB_PORT:-5432}:5432"
command: >
postgres
-c idle_in_transaction_session_timeout=30000
-c tcp_keepalives_idle=30
-c tcp_keepalives_interval=10
-c shared_preload_libraries=pg_stat_statements
-c pg_stat_statements.track=all
-c pg_stat_statements.max=10000
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-1GB}
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-3GB}
-c work_mem=${POSTGRES_WORK_MEM:-16MB}
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-256MB}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 5s
retries: 5
logging:
driver: local
options:
max-size: "100m"
max-file: "3"
compress: "true"
restart: unless-stopped
redis:
# OCI index digest for the official multi-architecture redis:7.4.11-alpine image.
image: redis:7.4.11-alpine@sha256:ff02b58f971e7d7d156a1267e283fcbbeee91773b6aa36c49dac28ecfe28eadf
container_name: aether-redis
command: redis-server --dir /tmp --appendonly no --save "" --requirepass ${REDIS_PASSWORD:?set REDIS_PASSWORD in .env} --maxclients ${REDIS_MAXCLIENTS:-10000}
ports:
- "127.0.0.1:${REDIS_PORT:-6379}:6379"
healthcheck:
test: [ "CMD-SHELL", "redis-cli -a \"${REDIS_PASSWORD:?set REDIS_PASSWORD in .env}\" ping | grep -q PONG" ]
interval: 5s
timeout: 3s
retries: 5
restart: unless-stopped
app:
image: ${APP_IMAGE:-ghcr.io/fawney19/aether:latest}
container_name: aether-app
@@ -11,28 +67,33 @@ services:
tmpfs:
- /tmp:rw,nosuid,nodev,noexec,mode=1777
env_file:
- ${AETHER_ENV_FILE:-.env}
- .env
environment:
AETHER_DATABASE_DRIVER: postgres
DATABASE_URL: postgresql://postgres:${DB_PASSWORD:?set DB_PASSWORD in .env}@postgres:5432/aether
REDIS_URL: redis://:${REDIS_PASSWORD:?set REDIS_PASSWORD in .env}@redis:6379/0
TZ: Asia/Shanghai
AETHER_BASE_DIR: /opt/aether
AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY: single-node
AETHER_UPDATE_STRATEGY: docker
AETHER_DOCKER_UPDATE_COMMAND: ${AETHER_DOCKER_UPDATE_COMMAND:-./update.sh}
AETHER_DATABASE_DRIVER: sqlite
AETHER_DATABASE_URL: sqlite:///opt/aether/data/aether.db
AETHER_RUNTIME_BACKEND: memory
AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY: single-node
AETHER_GATEWAY_NODE_ROLE: all
AETHER_LOG_DESTINATION: stdout
AETHER_LOG_FORMAT: ${AETHER_LOG_FORMAT:-pretty}
APP_PORT: ${APP_PORT:-8084}
AETHER_GATEWAY_AUTO_PREPARE_DATABASE: ${AETHER_GATEWAY_AUTO_PREPARE_DATABASE:-true}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
ports:
- "${APP_PORT:-8084}:${APP_PORT:-8084}"
volumes:
- ./data:/opt/aether/data
logging:
driver: json-file
options:
max-size: "100m"
max-file: "10"
restart: unless-stopped
volumes:
postgres_data: