Skip to content

Commit d85be39

Browse files
committed
Import composite types in postgres
1 parent 1721471 commit d85be39

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

src/utils/importSQL/postgres.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,33 @@ export function fromPostgres(ast, diagramDb = DB.GENERIC) {
245245
values: e.create_definitions.value.map((x) => x.value),
246246
};
247247
enums.push(newEnum);
248+
} else if (Array.isArray(e.create_definitions)) {
249+
const type = {
250+
name: e.name.name,
251+
fields: [],
252+
};
253+
e.create_definitions.forEach((d) => {
254+
const field = {};
255+
if (d.resource === "column") {
256+
field.name = d.column.column.expr.value;
257+
258+
let type = d.definition.dataType;
259+
if (!dbToTypes[diagramDb][type]) {
260+
type = affinity[diagramDb][type];
261+
}
262+
field.type = type;
263+
}
264+
if (d.definition["length"]) {
265+
if (d.definition.scale) {
266+
field.size = d.definition["length"] + "," + d.definition.scale;
267+
} else {
268+
field.size = d.definition["length"];
269+
}
270+
}
271+
272+
type.fields.push(field);
273+
});
274+
types.push(type);
248275
}
249276
}
250277
} else if (e.type === "alter") {

0 commit comments

Comments
 (0)