14 lines
553 B
JavaScript
14 lines
553 B
JavaScript
import { readFileSync, writeFileSync } from 'fs';
|
|
let sql = readFileSync('dump-fixed.sql', 'utf8');
|
|
// unistr('\uXXXX') -> plain UTF-8 string
|
|
sql = sql.replace(/unistr\('((?:[^'\\]|\\.)*)'\)/g, (_, inner) => {
|
|
const decoded = inner.replace(/\\u([0-9a-fA-F]{4})/g, (_, hex) =>
|
|
String.fromCharCode(parseInt(hex, 16))
|
|
);
|
|
return `'${decoded}'`;
|
|
});
|
|
// ROLLBACK at end of corrupt dump -> COMMIT so import doesn't discard everything
|
|
sql = sql.replace(/^ROLLBACK;.*$/m, 'COMMIT;');
|
|
writeFileSync('dump-fixed2.sql', sql, 'utf8');
|
|
console.log('done');
|