Merge pull request #256 from dustinsmith1024/dustin/json-fix
fixing json default value typescript parsing errors
This commit is contained in:
commit
d09bfeef0f
@ -536,9 +536,7 @@ WHERE TABLE_TYPE='BASE TABLE' and TABLE_SCHEMA in (${schema}) AND TABLE_CATALOG
|
||||
if (defaultValue.startsWith("(") && defaultValue.endsWith(")")) {
|
||||
defaultValue = defaultValue.slice(1, -1);
|
||||
}
|
||||
if (defaultValue.startsWith(`'`)) {
|
||||
return `() => "${defaultValue}"`;
|
||||
}
|
||||
|
||||
return `() => "${defaultValue}"`;
|
||||
}
|
||||
}
|
||||
|
@ -545,6 +545,7 @@ export default class MysqlDriver extends AbstractDriver {
|
||||
if (dataType === "set") {
|
||||
return `() => ['${defaultValue.split(",").join("','")}']`;
|
||||
}
|
||||
|
||||
return `() => "'${defaultValue}'"`;
|
||||
}
|
||||
}
|
||||
|
@ -417,9 +417,7 @@ export default class OracleDriver extends AbstractDriver {
|
||||
if (defaultVal.endsWith(" ")) {
|
||||
defaultVal = defaultVal.slice(0, -1);
|
||||
}
|
||||
if (defaultVal.startsWith(`'`)) {
|
||||
return `() => "${defaultVal}"`;
|
||||
}
|
||||
|
||||
return `() => "${defaultVal}"`;
|
||||
}
|
||||
}
|
||||
|
@ -116,7 +116,8 @@ export default class PostgresDriver extends AbstractDriver {
|
||||
const defaultValue = generated
|
||||
? undefined
|
||||
: PostgresDriver.ReturnDefaultValueFunction(
|
||||
resp.column_default
|
||||
resp.column_default,
|
||||
resp.data_type
|
||||
);
|
||||
|
||||
const columnTypes = this.MatchColumnTypes(
|
||||
@ -663,15 +664,17 @@ export default class PostgresDriver extends AbstractDriver {
|
||||
}
|
||||
|
||||
private static ReturnDefaultValueFunction(
|
||||
defVal: string | null
|
||||
defVal: string | null,
|
||||
dataType: string
|
||||
): string | undefined {
|
||||
let defaultValue = defVal;
|
||||
if (!defaultValue) {
|
||||
return undefined;
|
||||
}
|
||||
defaultValue = defaultValue.replace(/'::[\w ]*/, "'");
|
||||
if (defaultValue.startsWith(`'`)) {
|
||||
return `() => "${defaultValue}"`;
|
||||
|
||||
if (["json", "jsonb"].some((x) => x === dataType)) {
|
||||
return `${defaultValue.slice(1, defaultValue.length - 1)}`;
|
||||
}
|
||||
return `() => "${defaultValue}"`;
|
||||
}
|
||||
|
@ -452,9 +452,7 @@ export default class SqliteDriver extends AbstractDriver {
|
||||
if (!defVal) {
|
||||
return undefined;
|
||||
}
|
||||
if (defVal.startsWith(`'`)) {
|
||||
return `() => "${defVal}"`;
|
||||
}
|
||||
|
||||
return `() => "${defVal}"`;
|
||||
}
|
||||
}
|
||||
|
22
test/integration/github-issues/248/entity/Post.ts
Normal file
22
test/integration/github-issues/248/entity/Post.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { PrimaryGeneratedColumn, Column, Entity, OneToOne, JoinColumn, Index } from "typeorm";
|
||||
|
||||
@Entity("Post")
|
||||
export class Post {
|
||||
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number;
|
||||
|
||||
@Column("json", {
|
||||
default: { type: null, values: true }
|
||||
})
|
||||
data: object;
|
||||
|
||||
@Column("jsonb", {
|
||||
default: { type: null, values: true }
|
||||
})
|
||||
data2: object;
|
||||
|
||||
@Column()
|
||||
text: string;
|
||||
|
||||
}
|
@ -137,6 +137,10 @@ function runTestForMultipleDrivers(
|
||||
return dbDrivers.filter(dbDriver =>
|
||||
["mysql", "mariadb"].includes(dbDriver)
|
||||
);
|
||||
case "248":
|
||||
return dbDrivers.filter(dbDriver =>
|
||||
dbDriver === "postgres"
|
||||
);
|
||||
default:
|
||||
return dbDrivers;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user