Skip to content

Commit 7d3d1dd

Browse files
authored
Merge pull request #252 from csc530/main
Fix export for enum and set types for mysql
2 parents 2bf3bd6 + cd873ec commit 7d3d1dd

File tree

2 files changed

+46
-64
lines changed

2 files changed

+46
-64
lines changed

src/utils/exportSQL/mariadb.js

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,40 @@ export function toMariaDB(diagram) {
99
`CREATE OR REPLACE TABLE \`${table.name}\` (\n${table.fields
1010
.map(
1111
(field) =>
12-
`\t\`${
13-
field.name
14-
}\` ${field.type}${field.unsigned ? " UNSIGNED" : ""}${field.notNull ? " NOT NULL" : ""}${
15-
field.increment ? " AUTO_INCREMENT" : ""
16-
}${field.unique ? " UNIQUE" : ""}${
17-
field.default !== ""
18-
? ` DEFAULT ${parseDefault(field, diagram.database)}`
19-
: ""
20-
}${
21-
field.check === "" ||
12+
`\t\`${field.name
13+
}\` ${field.type}${field.values ? "(" + field.values.map(value => "'" + value + "'").join(", ") + ")" : ""}${field.unsigned ? " UNSIGNED" : ""}${field.notNull ? " NOT NULL" : ""}${field.increment ? " AUTO_INCREMENT" : ""
14+
}${field.unique ? " UNIQUE" : ""}${field.default !== ""
15+
? ` DEFAULT ${parseDefault(field, diagram.database)}`
16+
: ""
17+
}${field.check === "" ||
2218
!dbToTypes[diagram.database][field.type].hasCheck
23-
? ""
24-
: ` CHECK(${field.check})`
19+
? ""
20+
: ` CHECK(${field.check})`
2521
}${field.comment ? ` COMMENT '${field.comment}'` : ""}`,
2622
)
27-
.join(",\n")}${
28-
table.fields.filter((f) => f.primary).length > 0
29-
? `,\n\tPRIMARY KEY(${table.fields
30-
.filter((f) => f.primary)
31-
.map((f) => `\`${f.name}\``)
32-
.join(", ")})`
33-
: ""
23+
.join(",\n")}${table.fields.filter((f) => f.primary).length > 0
24+
? `,\n\tPRIMARY KEY(${table.fields
25+
.filter((f) => f.primary)
26+
.map((f) => `\`${f.name}\``)
27+
.join(", ")})`
28+
: ""
3429
}\n)${table.comment ? ` COMMENT='${table.comment}'` : ""};${`\n${table.indices
3530
.map(
3631
(i) =>
37-
`\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${
38-
i.name
32+
`\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${i.name
3933
}\`\nON \`${table.name}\` (${i.fields
4034
.map((f) => `\`${f}\``)
4135
.join(", ")});`,
4236
)
4337
.join("")}`}`,
4438
)
4539
.join("\n")}\n${diagram.references
46-
.map(
47-
(r) =>
48-
`ALTER TABLE \`${
49-
diagram.tables[r.startTableId].name
50-
}\`\nADD FOREIGN KEY(\`${
51-
diagram.tables[r.startTableId].fields[r.startFieldId].name
52-
}\`) REFERENCES \`${diagram.tables[r.endTableId].name}\`(\`${
53-
diagram.tables[r.endTableId].fields[r.endFieldId].name
54-
}\`)\nON UPDATE ${r.updateConstraint.toUpperCase()} ON DELETE ${r.deleteConstraint.toUpperCase()};`,
55-
)
56-
.join("\n")}`;
40+
.map(
41+
(r) =>
42+
`ALTER TABLE \`${diagram.tables[r.startTableId].name
43+
}\`\nADD FOREIGN KEY(\`${diagram.tables[r.startTableId].fields[r.startFieldId].name
44+
}\`) REFERENCES \`${diagram.tables[r.endTableId].name}\`(\`${diagram.tables[r.endTableId].fields[r.endFieldId].name
45+
}\`)\nON UPDATE ${r.updateConstraint.toUpperCase()} ON DELETE ${r.deleteConstraint.toUpperCase()};`,
46+
)
47+
.join("\n")}`;
5748
}

src/utils/exportSQL/mysql.js

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,40 @@ export function toMySQL(diagram) {
99
`CREATE TABLE \`${table.name}\` (\n${table.fields
1010
.map(
1111
(field) =>
12-
`\t\`${field.name}\` ${field.type}${field.unsigned ? " UNSIGNED" : ""}${field.size !== undefined && field.size !== "" ? "(" + field.size + ")" : ""}${
13-
field.notNull ? " NOT NULL" : ""
14-
}${
15-
field.increment ? " AUTO_INCREMENT" : ""
16-
}${field.unique ? " UNIQUE" : ""}${
17-
field.default !== ""
18-
? ` DEFAULT ${parseDefault(field, diagram.database)}`
19-
: ""
20-
}${
21-
field.check === "" ||
12+
`\t\`${field.name}\` ${field.type}${field.values ? "(" + field.values.map(value => "'" + value + "'").join(", ") + ")" : ""}${field.unsigned ? " UNSIGNED" : ""}${field.size !== undefined && field.size !== "" ? "(" + field.size + ")" : ""}${field.notNull ? " NOT NULL" : ""
13+
}${field.increment ? " AUTO_INCREMENT" : ""
14+
}${field.unique ? " UNIQUE" : ""}${field.default !== ""
15+
? ` DEFAULT ${parseDefault(field, diagram.database)}`
16+
: ""
17+
}${field.check === "" ||
2218
!dbToTypes[diagram.database][field.type].hasCheck
23-
? ""
24-
: ` CHECK(${field.check})`
19+
? ""
20+
: ` CHECK(${field.check})`
2521
}${field.comment ? ` COMMENT '${field.comment}'` : ""}`,
2622
)
27-
.join(",\n")}${
28-
table.fields.filter((f) => f.primary).length > 0
29-
? `,\n\tPRIMARY KEY(${table.fields
30-
.filter((f) => f.primary)
31-
.map((f) => `\`${f.name}\``)
32-
.join(", ")})`
33-
: ""
23+
.join(",\n")}${table.fields.filter((f) => f.primary).length > 0
24+
? `,\n\tPRIMARY KEY(${table.fields
25+
.filter((f) => f.primary)
26+
.map((f) => `\`${f.name}\``)
27+
.join(", ")})`
28+
: ""
3429
}\n)${table.comment ? ` COMMENT='${table.comment}'` : ""};\n${`\n${table.indices
3530
.map(
3631
(i) =>
37-
`\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${
38-
i.name
32+
`\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX \`${i.name
3933
}\`\nON \`${table.name}\` (${i.fields
4034
.map((f) => `\`${f}\``)
4135
.join(", ")});`,
4236
)
4337
.join("")}`}`,
4438
)
4539
.join("\n")}\n${diagram.references
46-
.map(
47-
(r) =>
48-
`ALTER TABLE \`${
49-
diagram.tables[r.startTableId].name
50-
}\`\nADD FOREIGN KEY(\`${
51-
diagram.tables[r.startTableId].fields[r.startFieldId].name
52-
}\`) REFERENCES \`${diagram.tables[r.endTableId].name}\`(\`${
53-
diagram.tables[r.endTableId].fields[r.endFieldId].name
54-
}\`)\nON UPDATE ${r.updateConstraint.toUpperCase()} ON DELETE ${r.deleteConstraint.toUpperCase()};`,
55-
)
56-
.join("\n")}`;
40+
.map(
41+
(r) =>
42+
`ALTER TABLE \`${diagram.tables[r.startTableId].name
43+
}\`\nADD FOREIGN KEY(\`${diagram.tables[r.startTableId].fields[r.startFieldId].name
44+
}\`) REFERENCES \`${diagram.tables[r.endTableId].name}\`(\`${diagram.tables[r.endTableId].fields[r.endFieldId].name
45+
}\`)\nON UPDATE ${r.updateConstraint.toUpperCase()} ON DELETE ${r.deleteConstraint.toUpperCase()};`,
46+
)
47+
.join("\n")}`;
5748
}

0 commit comments

Comments
 (0)