Files
wehub-resource-sync 6d978fe483
Build / Frontend Build (push) Has been cancelled
Build / Backend Build (push) Has been cancelled
Build / Docker Build (push) Has been cancelled
Build / Kubernetes Deploy Smoke Test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:24 +08:00

51 lines
1.3 KiB
TypeScript

import mysql from "mysql2/promise";
import { env } from "../fixtures/env.js";
import { sleep, waitForTcpPort } from "./wait-for.js";
async function main() {
await waitForTcpPort(env.db.host, env.db.port, 120_000);
let connection: mysql.Connection | undefined;
let lastError: unknown;
for (let attempt = 1; attempt <= 30; attempt += 1) {
try {
connection = await mysql.createConnection({
host: env.db.host,
port: env.db.port,
user: env.db.user,
password: env.db.password,
multipleStatements: false
});
break;
} catch (error) {
lastError = error;
await sleep(2000);
}
}
if (!connection) {
throw new Error(
`failed to connect to MySQL: ${
lastError instanceof Error ? lastError.message : String(lastError)
}`
);
}
try {
await connection.query(`DROP DATABASE IF EXISTS \`${env.db.database}\``);
await connection.query(
`CREATE DATABASE \`${env.db.database}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`
);
console.log(`[e2e] reset database ${env.db.database}`);
} finally {
await connection.end();
}
}
main().catch((error: unknown) => {
console.error("[e2e] failed to reset database");
console.error(error instanceof Error ? error.message : String(error));
process.exit(1);
});