refactor: 移除 SQLite 支持,仅保留 MySQL

This commit is contained in:
2026-08-05 17:43:13 +08:00
parent 81e622fa09
commit 47720a8fcc
35 changed files with 111 additions and 1961 deletions

View File

@@ -124,7 +124,6 @@ export async function normalizeClassDates(
dataSource: DataSource,
logger: Logger,
): Promise<void> {
const driver = dataSource.options.type;
let columns: Array<'start_date' | 'end_date'> = ['start_date', 'end_date'];
await withQueryRunner(dataSource, async (runner) => {
@@ -135,27 +134,21 @@ export async function normalizeClassDates(
// This cleanup is only for legacy schemas that stored dates as strings;
// comparing a native DATE column with '' raises ER_TRUNCATED_WRONG_VALUE
// in strict SQL mode.
if (driver === 'mysql') {
columns = columns.filter((columnName) => {
const column = table.columns.find((item) => item.name === columnName);
const type = String(column?.type ?? '').toLowerCase();
return !['date', 'datetime', 'timestamp'].includes(type);
});
if (columns.length === 0) return;
}
columns = columns.filter((columnName) => {
const column = table.columns.find((item) => item.name === columnName);
const type = String(column?.type ?? '').toLowerCase();
return !['date', 'datetime', 'timestamp'].includes(type);
});
if (columns.length === 0) return;
});
const columnText = (column: string) =>
driver === 'mysql' ? `CAST(${column} AS CHAR)` : column;
const firstTenChars = (column: string) =>
driver === 'mysql'
? `NULLIF(LEFT(${columnText(column)}, 10), '')`
: `NULLIF(substr(${column}, 1, 10), '')`;
const columnText = (column: string) => `CAST(${column} AS CHAR)`;
const firstTenChars = (column: string) => `NULLIF(LEFT(${columnText(column)}, 10), '')`;
const normalizedDate = (column: string) => `CASE
WHEN ${column} IS NULL THEN NULL
ELSE ${firstTenChars(column)}
END`;
const lengthFunction = driver === 'mysql' ? 'CHAR_LENGTH' : 'length';
const lengthFunction = 'CHAR_LENGTH';
const needsNormalization = (column: string) => `(
${column} IS NOT NULL
AND (${columnText(column)} = '' OR ${lengthFunction}(${columnText(column)}) > 10)