diff --git a/src/utils/exportSQL/generic.js b/src/utils/exportSQL/generic.js index 3144e00..c727487 100644 --- a/src/utils/exportSQL/generic.js +++ b/src/utils/exportSQL/generic.js @@ -141,12 +141,10 @@ export function jsonToMySQL(obj) { return `${obj.tables .map( (table) => - `${ - table.comment === "" ? "" : `/* ${table.comment} */\n` - }CREATE TABLE \`${table.name}\` (\n${table.fields + `CREATE TABLE \`${table.name}\` (\n${table.fields .map( (field) => - `${field.comment === "" ? "" : `\t-- ${field.comment}\n`}\t\`${ + `\t\`${ field.name }\` ${getTypeString(field, obj.database)}${field.notNull ? " NOT NULL" : ""}${ field.increment ? " AUTO_INCREMENT" : "" @@ -220,16 +218,16 @@ export function jsonToPostgreSQL(obj) { .join("\n")}\n);` ); } else { - return `${ - type.comment === "" ? "" : `/**\n${type.comment}\n*/\n` - }CREATE TYPE ${type.name} AS (\n${type.fields + return `CREATE TYPE ${type.name} AS (\n${type.fields .map((f) => `\t${f.name} ${getTypeString(f, obj.database, "postgres")}`) - .join("\n")}\n);`; + .join( + "\n", + )}\n);\n${type.comment != "" ? `\nCOMMENT ON TYPE ${type.name} IS '${type.comment}';\n` : ""}`; } })}\n${obj.tables .map( (table) => - `${table.comment === "" ? "" : `/**\n${table.comment}\n*/\n`}${ + `${ table.fields.filter((f) => f.type === "ENUM" || f.type === "SET") .length > 0 ? `${table.fields @@ -265,7 +263,13 @@ export function jsonToPostgreSQL(obj) { .map((f) => `"${f.name}"`) .join(", ")})` : "" - }\n);\n${table.indices + }\n);\n${table.comment != "" ? `\nCOMMENT ON TABLE ${table.name} IS '${table.comment}';\n` : ""}${table.fields + .map((field) => + field.comment.trim() !== "" + ? `COMMENT ON COLUMN ${table.name}.${field.name} IS '${field.comment}';\n` + : "", + ) + .join("")}\n${table.indices .map( (i) => `CREATE ${i.unique ? "UNIQUE " : ""}INDEX "${ @@ -381,12 +385,10 @@ export function jsonToMariaDB(obj) { return `${obj.tables .map( (table) => - `${ - table.comment === "" ? "" : `/* ${table.comment} */\n` - }CREATE OR REPLACE TABLE \`${table.name}\` (\n${table.fields + `CREATE OR REPLACE TABLE \`${table.name}\` (\n${table.fields .map( (field) => - `${field.comment === "" ? "" : `\t-- ${field.comment}\n`}\t\`${ + `\t\`${ field.name }\` ${getTypeString(field, obj.database)}${field.notNull ? " NOT NULL" : ""}${ field.increment ? " AUTO_INCREMENT" : "" @@ -405,7 +407,7 @@ export function jsonToMariaDB(obj) { )}', \`${field.name}\`))` : "" : ` CHECK(${field.check})` - }`, + }${field.comment ? ` COMMENT '${field.comment}'` : ""}`, ) .join(",\n")}${ table.fields.filter((f) => f.primary).length > 0 @@ -414,7 +416,7 @@ export function jsonToMariaDB(obj) { .map((f) => `\`${f.name}\``) .join(", ")})` : "" - }\n);${`\n${table.indices + }\n)${table.comment ? ` COMMENT='${table.comment}'` : ""};${`\n${table.indices .map( (i) => `CREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${ diff --git a/src/utils/exportSQL/mariadb.js b/src/utils/exportSQL/mariadb.js index dc83b23..e7f5c55 100644 --- a/src/utils/exportSQL/mariadb.js +++ b/src/utils/exportSQL/mariadb.js @@ -6,9 +6,7 @@ export function toMariaDB(diagram) { return `${diagram.tables .map( (table) => - `${ - table.comment === "" ? "" : `/* ${table.comment} */\n` - }CREATE OR REPLACE TABLE \`${table.name}\` (\n${table.fields + `CREATE OR REPLACE TABLE \`${table.name}\` (\n${table.fields .map( (field) => `${exportFieldComment(field.comment)}\t\`${ @@ -24,7 +22,7 @@ export function toMariaDB(diagram) { !dbToTypes[diagram.database][field.type].hasCheck ? "" : ` CHECK(${field.check})` - }`, + }${field.comment ? ` COMMENT '${field.comment}'` : ""}`, ) .join(",\n")}${ table.fields.filter((f) => f.primary).length > 0 @@ -33,7 +31,7 @@ export function toMariaDB(diagram) { .map((f) => `\`${f.name}\``) .join(", ")})` : "" - }\n);${`\n${table.indices + }\n)${table.comment ? ` COMMENT='${table.comment}'` : ""};${`\n${table.indices .map( (i) => `\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${ diff --git a/src/utils/exportSQL/mysql.js b/src/utils/exportSQL/mysql.js index e462ca6..2507523 100644 --- a/src/utils/exportSQL/mysql.js +++ b/src/utils/exportSQL/mysql.js @@ -1,4 +1,4 @@ -import { exportFieldComment, parseDefault } from "./shared"; +import { parseDefault } from "./shared"; import { dbToTypes } from "../../data/datatypes"; @@ -6,14 +6,10 @@ export function toMySQL(diagram) { return `${diagram.tables .map( (table) => - `${ - table.comment === "" ? "" : `/* ${table.comment} */\n` - }CREATE TABLE \`${table.name}\` (\n${table.fields + `CREATE TABLE \`${table.name}\` (\n${table.fields .map( (field) => - `${exportFieldComment(field.comment)}\t\`${ - field.name - }\` ${field.type}${field.unsigned ? " UNSIGNED" : ""}${field.size !== undefined && field.size !== "" ? "(" + field.size + ")" : ""}${ + `\` ${field.type}${field.unsigned ? " UNSIGNED" : ""}${field.size !== undefined && field.size !== "" ? "(" + field.size + ")" : ""}${ field.notNull ? " NOT NULL" : "" }${ field.increment ? " AUTO_INCREMENT" : "" diff --git a/src/utils/exportSQL/postgres.js b/src/utils/exportSQL/postgres.js index 4dd311b..0db0e52 100644 --- a/src/utils/exportSQL/postgres.js +++ b/src/utils/exportSQL/postgres.js @@ -6,9 +6,9 @@ export function toPostgres(diagram) { const enumStatements = diagram.enums .map( (e) => - `CREATE TYPE "${e.name}" AS ENUM (\n${e.values.map((v) => `\t'${v}'`).join(",\n")}\n);`, + `CREATE TYPE "${e.name}" AS ENUM (\n${e.values.map((v) => `\t'${v}'`).join(",\n")}\n);\n`, ) - .join("\n\n"); + .join("\n"); const typeStatements = diagram.types .map( @@ -53,7 +53,13 @@ export function toPostgres(diagram) { table.comment.trim() !== "" ? `\nCOMMENT ON TABLE "${table.name}" IS '${table.comment}';\n` : "" - }${table.indices + }${table.fields + .map((field) => + field.comment.trim() !== "" + ? `COMMENT ON COLUMN ${table.name}.${field.name} IS '${field.comment}';\n` + : "", + ) + .join("")}${table.indices .map( (i) => `\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX "${