MCPcopy Create free account
hub / github.com/agent-tower/core / ensureDatabase

Function ensureDatabase

packages/server/src/cli.ts:137–169  ·  view source on GitHub ↗

确保数据库 schema 与当前版本一致

(dataDir: string, dbPath: string, schemaPath: string)

Source from the content-addressed store, hash-verified

135
136/** 确保数据库 schema 与当前版本一致 */
137function ensureDatabase(dataDir: string, dbPath: string, schemaPath: string) {
138 const prisma = getBundledPrismaCommand(__dirname);
139 try {
140 execFileSync(prisma.command, [...prisma.args, 'db', 'push', '--skip-generate', `--schema=${schemaPath}`], {
141 stdio: 'pipe',
142 env: preparePrismaCliEnv(dataDir, dbPath),
143 });
144 } catch (err: unknown) {
145 const msg = err instanceof Error ? err.message : String(err);
146 console.error('Failed to initialize database:', msg);
147 const stderr = getCommandOutput(err, 'stderr');
148 const stdout = getCommandOutput(err, 'stdout');
149 writeErrorLog({
150 level: 'error',
151 source: 'server.cli.ensureDatabase',
152 message: 'Failed to initialize database',
153 error: err,
154 metadata: {
155 dbPath,
156 schemaPath,
157 stderr,
158 stdout,
159 },
160 }, { dataDir });
161 if (stderr) {
162 console.error(stderr);
163 }
164 if (stdout) {
165 console.error(stdout);
166 }
167 process.exit(1);
168 }
169}
170
171async function main() {
172 const { port, host, dataDir, webDir, disableAccessPassword } = parseArgs();

Callers 1

mainFunction · 0.85

Calls 4

getBundledPrismaCommandFunction · 0.85
preparePrismaCliEnvFunction · 0.85
getCommandOutputFunction · 0.85
writeErrorLogFunction · 0.85

Tested by

no test coverage detected