MCPcopy
hub / github.com/drawdb-io/drawdb / toOracleSQL

Function toOracleSQL

src/utils/exportSQL/oraclesql.js:8–71  ·  view source on GitHub ↗
(diagram)

Source from the content-addressed store, hash-verified

6} from "./shared";
7
8export function toOracleSQL(diagram) {
9 return `${diagram.tables
10 .map(
11 (table) =>
12 `${
13 table.comment === "" ? "" : `/* ${table.comment} */\n`
14 }CREATE TABLE "${table.name}" (\n${table.fields
15 .map(
16 (field) =>
17 `${field.comment === "" ? "" : `\t-- ${field.comment}\n`}\t"${
18 field.name
19 }" ${field.type}${
20 field.size !== undefined && field.size !== ""
21 ? "(" + field.size + ")"
22 : ""
23 }${field.notNull ? " NOT NULL" : ""}${
24 field.increment ? " GENERATED ALWAYS AS IDENTITY" : ""
25 }${field.unique ? " UNIQUE" : ""}${
26 field.default !== ""
27 ? ` DEFAULT ${parseDefault(field, diagram.database)}`
28 : ""
29 }${
30 field.check === "" ||
31 !dbToTypes[diagram.database][field.type].hasCheck
32 ? ""
33 : ` CHECK(${field.check})`
34 }${field.comment ? ` -- ${field.comment}` : ""}`,
35 )
36 .join(",\n")}${
37 table.fields.filter((f) => f.primary).length > 0
38 ? `,\n\tPRIMARY KEY(${table.fields
39 .filter((f) => f.primary)
40 .map((f) => `"${f.name}"`)
41 .join(", ")})`
42 : ""
43 }${uniqueConstraintClause(table, (s) => `"${s}"`)}\n)${table.comment ? ` -- ${table.comment}` : ""};\n${`\n${table.indices
44 .map(
45 (i) =>
46 `\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX "${i.name}"\nON "${table.name}" (${i.fields
47 .map((f) => `"${f}"`)
48 .join(", ")});`,
49 )
50 .join("")}`}`,
51 )
52 .join("\n")}\n${diagram.references
53 .map((r) => {
54 const { name: startName, fields: startFields } = diagram.tables.find(
55 (t) => t.id === r.startTableId,
56 );
57 const endTable = diagram.tables.find((t) => t.id === r.endTableId);
58 const { name: endName } = endTable;
59 const { startColumns, endColumns } = getFkColumnNames(
60 r,
61 { fields: startFields },
62 endTable,
63 );
64 return `ALTER TABLE "${startName}"\nADD CONSTRAINT "${r.name}" FOREIGN KEY (${startColumns
65 .map((c) => `"${c}"`)

Callers 1

exportSQLFunction · 0.90

Calls 3

parseDefaultFunction · 0.90
uniqueConstraintClauseFunction · 0.90
getFkColumnNamesFunction · 0.90

Tested by

no test coverage detected