mirror of
https://github.com/drawdb-io/drawdb.git
synced 2025-05-24 18:39:12 +00:00
Convert unsupported types in generic diagrams on import
This commit is contained in:
parent
0a108fc33a
commit
490cb738de
@ -2,10 +2,22 @@ import { Cardinality, DB } from "../../data/constants";
|
|||||||
import { dbToTypes } from "../../data/datatypes";
|
import { dbToTypes } from "../../data/datatypes";
|
||||||
import { buildSQLFromAST } from "./shared";
|
import { buildSQLFromAST } from "./shared";
|
||||||
|
|
||||||
export const affinity = new Proxy(
|
const affinity = {
|
||||||
{ INT: "INTEGER" },
|
[DB.MYSQL]: new Proxy(
|
||||||
{ get: (target, prop) => (prop in target ? target[prop] : "BLOB") },
|
{ INT: "INTEGER" },
|
||||||
);
|
{ get: (target, prop) => (prop in target ? target[prop] : "BLOB") },
|
||||||
|
),
|
||||||
|
[DB.GENERIC]: new Proxy(
|
||||||
|
{
|
||||||
|
INT: "INTEGER",
|
||||||
|
TINYINT: "SMALLINT",
|
||||||
|
MEDIUMINT: "INTEGER",
|
||||||
|
BIT: "BOOLEAN",
|
||||||
|
YEAR: "INTEGER",
|
||||||
|
},
|
||||||
|
{ get: (target, prop) => (prop in target ? target[prop] : "BLOB") },
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
export function fromMySQL(ast, diagramDb = DB.GENERIC) {
|
export function fromMySQL(ast, diagramDb = DB.GENERIC) {
|
||||||
const tables = [];
|
const tables = [];
|
||||||
@ -28,7 +40,7 @@ export function fromMySQL(ast, diagramDb = DB.GENERIC) {
|
|||||||
|
|
||||||
let type = d.definition.dataType;
|
let type = d.definition.dataType;
|
||||||
if (!dbToTypes[diagramDb][type]) {
|
if (!dbToTypes[diagramDb][type]) {
|
||||||
type = affinity[type];
|
type = affinity[diagramDb][type];
|
||||||
}
|
}
|
||||||
field.type = type;
|
field.type = type;
|
||||||
|
|
||||||
|
@ -2,26 +2,39 @@ import { Cardinality, DB } from "../../data/constants";
|
|||||||
import { dbToTypes } from "../../data/datatypes";
|
import { dbToTypes } from "../../data/datatypes";
|
||||||
import { buildSQLFromAST } from "./shared";
|
import { buildSQLFromAST } from "./shared";
|
||||||
|
|
||||||
export const affinity = new Proxy(
|
const affinity = {
|
||||||
{
|
[DB.SQLITE]: new Proxy(
|
||||||
INT: "INTEGER",
|
{
|
||||||
TINYINT: "INTEGER",
|
INT: "INTEGER",
|
||||||
SMALLINT: "INTEGER",
|
TINYINT: "INTEGER",
|
||||||
MEDIUMINT: "INTEGER",
|
SMALLINT: "INTEGER",
|
||||||
BIGINT: "INTEGER",
|
MEDIUMINT: "INTEGER",
|
||||||
"UNSIGNED BIG INT": "INTEGER",
|
BIGINT: "INTEGER",
|
||||||
INT2: "INTEGER",
|
"UNSIGNED BIG INT": "INTEGER",
|
||||||
INT8: "INTEGER",
|
INT2: "INTEGER",
|
||||||
CHARACTER: "TEXT",
|
INT8: "INTEGER",
|
||||||
NCHARACTER: "TEXT",
|
CHARACTER: "TEXT",
|
||||||
NVARCHAR: "VARCHAR",
|
NCHARACTER: "TEXT",
|
||||||
DOUBLE: "REAL",
|
NVARCHAR: "VARCHAR",
|
||||||
FLOAT: "REAL",
|
DOUBLE: "REAL",
|
||||||
},
|
FLOAT: "REAL",
|
||||||
{
|
},
|
||||||
get: (target, prop) => (prop in target ? target[prop] : "BLOB"),
|
{ get: (target, prop) => (prop in target ? target[prop] : "BLOB") },
|
||||||
},
|
),
|
||||||
);
|
[DB.GENERIC]: new Proxy(
|
||||||
|
{
|
||||||
|
INT: "INTEGER",
|
||||||
|
TINYINT: "SMALLINT",
|
||||||
|
MEDIUMINT: "INTEGER",
|
||||||
|
INT2: "INTEGER",
|
||||||
|
INT8: "INTEGER",
|
||||||
|
CHARACTER: "TEXT",
|
||||||
|
NCHARACTER: "TEXT",
|
||||||
|
NVARCHAR: "VARCHAR",
|
||||||
|
},
|
||||||
|
{ get: (target, prop) => (prop in target ? target[prop] : "BLOB") },
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
export function fromSQLite(ast, diagramDb = DB.GENERIC) {
|
export function fromSQLite(ast, diagramDb = DB.GENERIC) {
|
||||||
console.log(ast);
|
console.log(ast);
|
||||||
@ -45,7 +58,7 @@ export function fromSQLite(ast, diagramDb = DB.GENERIC) {
|
|||||||
|
|
||||||
let type = d.definition.dataType;
|
let type = d.definition.dataType;
|
||||||
if (!dbToTypes[diagramDb][type]) {
|
if (!dbToTypes[diagramDb][type]) {
|
||||||
type = affinity[type];
|
type = affinity[diagramDb][type];
|
||||||
}
|
}
|
||||||
field.type = type;
|
field.type = type;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user