建表 懒人脚本

90 阅读1分钟

建表 懒人脚本 还可以拓展一下下

快速建表 重复生成时操作

使用nodejs 写文件
这里进行遍历扫描
由后缀定义类型
统一有4个固定的字段


const fs = require('fs');
 
var tableMap ={
  user:'name,passwod,email',
  admin:'name,passwod,email',
  article:'user_id,type_id,article,view|int,like|int',
  comment:'user_id,article_id,comment,like|int',
  reply:'user_id,comment_id,reply,like|int',
  token:'user_id,token,price|int', 
}

function each({name,list}){
  var tmp = list.map(e=>{
    if(e.endsWith("_id")) return  `${e} INT,`
    if(e.endsWith("|int")) return  `${e.replace('|int','')} INT,`
    return `${e} VARCHAR(100),`
  }).join("\n")

  return ` 
  DROP TABLE IF EXISTS ${name};
  CREATE TABLE ${name} (
      id INT AUTO_INCREMENT PRIMARY KEY,
      ${tmp}
      status INT DEFAULT 0,
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  ); 
  `
}
var sql = []
Object.keys(tableMap).forEach((key) => {
  sql.push(each( { name :key, list:tableMap[key].split(",") }))
});
// sql =table.map(e=>`DROP TABLE IF EXISTS ${e}`).join(";\n \n")
fs.writeFileSync('sql.sql', sql.join('\n'));