Use COMMENT keyword when exporting comments

This commit is contained in:
1ilit 2024-08-23 18:16:42 +04:00
parent 1139ad45f4
commit ff57dbc16d
4 changed files with 33 additions and 31 deletions

View File

@ -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 \`${

View File

@ -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 \`${

View File

@ -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" : ""

View File

@ -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 "${