feat: 声明 PikaOA 独立测试数据库

This commit is contained in:
Codex
2026-07-15 03:13:13 +02:00
parent 353ddd4624
commit d281b56074
2 changed files with 73 additions and 14 deletions
+58
View File
@@ -10,6 +10,7 @@ metadata:
- 281
- 297
- 300
- 2078
cluster:
role: primary
@@ -374,6 +375,16 @@ postgres:
user: pikaoa
address: 152.53.229.148/32
method: scram-sha-256
- type: hostssl
database: pikaoa_test
user: pikaoa_test
address: 10.0.8.0/22
method: scram-sha-256
- type: hostssl
database: pikaoa_test
user: pikaoa_test
address: 152.53.229.148/32
method: scram-sha-256
secrets:
source: master-local
@@ -491,6 +502,20 @@ secrets:
PIKAOA_DB_NAME: pikaoa
randomHex:
PIKAOA_DB_PASSWORD: 32
- name: pikaoa-test-db-credentials
sourceRef: platform-db/pikaoa-test-db.env
type: env
requiredKeys:
- PIKAOA_TEST_DB_USER
- PIKAOA_TEST_DB_PASSWORD
- PIKAOA_TEST_DB_NAME
createIfMissing:
enabled: true
values:
PIKAOA_TEST_DB_USER: pikaoa_test
PIKAOA_TEST_DB_NAME: pikaoa_test
randomHex:
PIKAOA_TEST_DB_PASSWORD: 32
objects:
roles:
- name: sub2api
@@ -565,6 +590,15 @@ objects:
createdb: false
createrole: false
superuser: false
- name: pikaoa_test
passwordRef:
sourceRef: platform-db/pikaoa-test-db.env
key: PIKAOA_TEST_DB_PASSWORD
login: true
attributes:
createdb: false
createrole: false
superuser: false
databases:
- name: sub2api
owner: sub2api
@@ -606,6 +640,11 @@ objects:
encoding: UTF8
locale: C.UTF-8
extensions: []
- name: pikaoa_test
owner: pikaoa_test
encoding: UTF8
locale: C.UTF-8
extensions: []
exports:
connectionStrings:
@@ -764,6 +803,22 @@ exports:
- scope: pikaoa
secret: pikaoa-runtime
key: DATABASE_URL
- name: pikaoa-test-database-url
sourceSecretRef: platform-db/pikaoa-test-db.env
render:
envKey: DATABASE_URL
format: postgresql://$(PIKAOA_TEST_DB_USER):$(PIKAOA_TEST_DB_PASSWORD)@$(PGHOST):$(PGPORT)/$(PIKAOA_TEST_DB_NAME)?sslmode=require
variables:
PGHOST: 82.156.23.220
PGPORT: "5432"
writeToSecretSource:
sourceRef: platform-infra/pikaoa-test.env
key: DATABASE_URL
mode: update-or-insert
consumers:
- scope: pikaoa-test
secret: pikaoa-test-runtime
key: DATABASE_URL
backup:
phase: minimum-restoreable
@@ -812,6 +867,9 @@ observability:
- kind: psql-app-role
database: pikaoa
user: pikaoa
- kind: psql-app-role
database: pikaoa_test
user: pikaoa_test
- kind: disk-free
path: /var/lib/postgresql/16/main
minFreeGiB: 10
+15 -14
View File
@@ -1113,27 +1113,28 @@ function compactPlan(
transport: pg.postgres.network.transport,
sslmode: pg.postgres.network.sslmode,
},
roles: pg.objects.roles.map((role) => ({
roles: compactActionableSummary(pg.objects.roles.map((role) => ({
name: role.name,
exists: observedRoles.find((item) => item.name === role.name)?.exists ?? null,
action: observedRoles.some((item) => item.name === role.name && item.exists) ? "none" : "create-or-update",
})),
databases: pg.objects.databases.map((database) => ({
})), {
passed: (item) => item.action === "none",
missing: (item) => item.exists !== true,
actionable: (item) => item.action !== "none",
project: (item) => item,
}),
databases: compactActionableSummary(pg.objects.databases.map((database) => ({
name: database.name,
owner: database.owner,
exists: observedDatabases.find((item) => item.name === database.name)?.exists ?? null,
action: observedDatabases.some((item) => item.name === database.name && item.exists) ? "none" : "create",
})),
secrets: {
ok: secrets.ok,
root: secrets.root,
entries: secrets.entries.map((entry) => ({
sourceRef: entry.sourceRef,
missingKeys: entry.missingKeys,
action: entry.action,
})),
valuesPrinted: false,
},
})), {
passed: (item) => item.action === "none",
missing: (item) => item.exists !== true,
actionable: (item) => item.action !== "none",
project: (item) => item,
}),
secrets: compactSecretInspection(secrets),
exports: pg.exports.connectionStrings.map((item) => ({
name: item.name,
sourceRef: item.sourceSecretRef,