Files
HKSingleParty/02_design/schema/flatten.js
2025-05-28 09:55:51 +08:00

31 lines
1.1 KiB
JavaScript

const fs = require('fs');
const schemaSql = fs.readFileSync('schema.sql', 'utf8');
var schemaSqlTrimmed = schemaSql.replace(/^\n$/g, '');
schemaSqlTrimmed = schemaSqlTrimmed.replace(/\(\n/g, '(');
schemaSqlTrimmed = schemaSqlTrimmed.replace(/\n /g, ' ');
schemaSqlTrimmed = schemaSqlTrimmed.replace(/\n\)/g, ')');
schemaSqlTrimmed = schemaSqlTrimmed.replace(/,\n/g, '');
for (let i =0 ; i<10; i++){
schemaSqlTrimmed = schemaSqlTrimmed.replace(/\n\n/g, '\n');
}
// split schemaSqlTrimmed on 'by \n'
const schemaSqlSplit = schemaSqlTrimmed.split('\n');
const commentIndex = schemaSqlSplit.findIndex(line => line.match(/^COMMENT/));
const alterIndex = schemaSqlSplit.findIndex(line => line.match(/^ALTER/));
console.log({commentIndex, alterIndex});
const createSql = schemaSqlSplit.slice(0, commentIndex).join('\n');
fs.writeFileSync('create.sql', createSql);
const commentSql = schemaSqlSplit.slice(commentIndex, alterIndex).join('\n');
fs.writeFileSync('comment.sql', commentSql);
const alterSql = schemaSqlSplit.slice( alterIndex).join('\n');
fs.writeFileSync('alter.sql', '-- \n'+'-- alter.sql\n'+ '-- \n' + alterSql);
// console.log({schemaSqlTrimmed})