drizzle-kit 0.23.2 → 0.24.0-6205f01
Sign up to get free protection for your applications and to get access to all the features.
- package/api.d.mts +20 -4
- package/api.d.ts +20 -4
- package/api.js +98 -18
- package/api.mjs +98 -18
- package/bin.cjs +37 -4
- package/package.json +1 -1
- package/utils.js +5 -0
- package/utils.mjs +4 -0
package/api.d.mts
CHANGED
@@ -1411,7 +1411,7 @@ declare const pushMySQLSchema: (imports: Record<string, unknown>, drizzleInstanc
|
|
1411
1411
|
apply: () => Promise<void>;
|
1412
1412
|
}>;
|
1413
1413
|
declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
1414
|
-
version: "
|
1414
|
+
version: "7";
|
1415
1415
|
dialect: "postgresql";
|
1416
1416
|
tables: Record<string, {
|
1417
1417
|
name: string;
|
@@ -1444,11 +1444,17 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1444
1444
|
}>;
|
1445
1445
|
indexes: Record<string, {
|
1446
1446
|
name: string;
|
1447
|
-
columns:
|
1447
|
+
columns: {
|
1448
|
+
expression: string;
|
1449
|
+
isExpression: boolean;
|
1450
|
+
asc: boolean;
|
1451
|
+
nulls?: string | undefined;
|
1452
|
+
opclass?: string | undefined;
|
1453
|
+
}[];
|
1448
1454
|
isUnique: boolean;
|
1449
1455
|
method: string;
|
1450
1456
|
concurrently: boolean;
|
1451
|
-
with?: Record<string,
|
1457
|
+
with?: Record<string, any> | undefined;
|
1452
1458
|
where?: string | undefined;
|
1453
1459
|
}>;
|
1454
1460
|
foreignKeys: Record<string, {
|
@@ -1477,6 +1483,16 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1477
1483
|
schema: string;
|
1478
1484
|
}>;
|
1479
1485
|
schemas: Record<string, string>;
|
1486
|
+
sequences: Record<string, {
|
1487
|
+
name: string;
|
1488
|
+
schema: string;
|
1489
|
+
increment?: string | undefined;
|
1490
|
+
minValue?: string | undefined;
|
1491
|
+
maxValue?: string | undefined;
|
1492
|
+
startWith?: string | undefined;
|
1493
|
+
cache?: string | undefined;
|
1494
|
+
cycle?: boolean | undefined;
|
1495
|
+
}>;
|
1480
1496
|
_meta: {
|
1481
1497
|
tables: Record<string, string>;
|
1482
1498
|
columns: Record<string, string>;
|
@@ -1493,6 +1509,6 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1493
1509
|
} | undefined>;
|
1494
1510
|
} | undefined>;
|
1495
1511
|
} | undefined;
|
1496
|
-
}
|
1512
|
+
} | Record<string, unknown>;
|
1497
1513
|
|
1498
1514
|
export { type DrizzleMySQLSnapshotJSON, type DrizzleSQLiteSnapshotJSON, type DrizzleSnapshotJSON, generateDrizzleJson, generateMigration, generateMySQLDrizzleJson, generateMySQLMigration, generateSQLiteDrizzleJson, generateSQLiteMigration, pushMySQLSchema, pushSQLiteSchema, pushSchema, upPgSnapshot };
|
package/api.d.ts
CHANGED
@@ -1411,7 +1411,7 @@ declare const pushMySQLSchema: (imports: Record<string, unknown>, drizzleInstanc
|
|
1411
1411
|
apply: () => Promise<void>;
|
1412
1412
|
}>;
|
1413
1413
|
declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
1414
|
-
version: "
|
1414
|
+
version: "7";
|
1415
1415
|
dialect: "postgresql";
|
1416
1416
|
tables: Record<string, {
|
1417
1417
|
name: string;
|
@@ -1444,11 +1444,17 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1444
1444
|
}>;
|
1445
1445
|
indexes: Record<string, {
|
1446
1446
|
name: string;
|
1447
|
-
columns:
|
1447
|
+
columns: {
|
1448
|
+
expression: string;
|
1449
|
+
isExpression: boolean;
|
1450
|
+
asc: boolean;
|
1451
|
+
nulls?: string | undefined;
|
1452
|
+
opclass?: string | undefined;
|
1453
|
+
}[];
|
1448
1454
|
isUnique: boolean;
|
1449
1455
|
method: string;
|
1450
1456
|
concurrently: boolean;
|
1451
|
-
with?: Record<string,
|
1457
|
+
with?: Record<string, any> | undefined;
|
1452
1458
|
where?: string | undefined;
|
1453
1459
|
}>;
|
1454
1460
|
foreignKeys: Record<string, {
|
@@ -1477,6 +1483,16 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1477
1483
|
schema: string;
|
1478
1484
|
}>;
|
1479
1485
|
schemas: Record<string, string>;
|
1486
|
+
sequences: Record<string, {
|
1487
|
+
name: string;
|
1488
|
+
schema: string;
|
1489
|
+
increment?: string | undefined;
|
1490
|
+
minValue?: string | undefined;
|
1491
|
+
maxValue?: string | undefined;
|
1492
|
+
startWith?: string | undefined;
|
1493
|
+
cache?: string | undefined;
|
1494
|
+
cycle?: boolean | undefined;
|
1495
|
+
}>;
|
1480
1496
|
_meta: {
|
1481
1497
|
tables: Record<string, string>;
|
1482
1498
|
columns: Record<string, string>;
|
@@ -1493,6 +1509,6 @@ declare const upPgSnapshot: (snapshot: Record<string, unknown>) => {
|
|
1493
1509
|
} | undefined>;
|
1494
1510
|
} | undefined>;
|
1495
1511
|
} | undefined;
|
1496
|
-
}
|
1512
|
+
} | Record<string, unknown>;
|
1497
1513
|
|
1498
1514
|
export { type DrizzleMySQLSnapshotJSON, type DrizzleSQLiteSnapshotJSON, type DrizzleSnapshotJSON, generateDrizzleJson, generateMigration, generateMySQLDrizzleJson, generateMySQLMigration, generateSQLiteDrizzleJson, generateSQLiteMigration, pushMySQLSchema, pushSQLiteSchema, pushSchema, upPgSnapshot };
|
package/api.js
CHANGED
@@ -8338,6 +8338,9 @@ var init_sqliteSchema = __esm({
|
|
8338
8338
|
});
|
8339
8339
|
|
8340
8340
|
// src/utils.ts
|
8341
|
+
function isPgArrayType(sqlType) {
|
8342
|
+
return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
|
8343
|
+
}
|
8341
8344
|
var copy, prepareMigrationMeta, schemaRenameKey, tableRenameKey, columnRenameKey;
|
8342
8345
|
var init_utils = __esm({
|
8343
8346
|
"src/utils.ts"() {
|
@@ -8711,14 +8714,14 @@ var require_heap = __commonJS({
|
|
8711
8714
|
return item;
|
8712
8715
|
};
|
8713
8716
|
heapify = function(array, cmp) {
|
8714
|
-
var i, _i2,
|
8717
|
+
var i, _i2, _j2, _len, _ref, _ref1, _results, _results1;
|
8715
8718
|
if (cmp == null) {
|
8716
8719
|
cmp = defaultCmp;
|
8717
8720
|
}
|
8718
8721
|
_ref1 = function() {
|
8719
8722
|
_results1 = [];
|
8720
|
-
for (var
|
8721
|
-
_results1.push(
|
8723
|
+
for (var _j3 = 0, _ref2 = floor(array.length / 2); 0 <= _ref2 ? _j3 < _ref2 : _j3 > _ref2; 0 <= _ref2 ? _j3++ : _j3--) {
|
8724
|
+
_results1.push(_j3);
|
8722
8725
|
}
|
8723
8726
|
return _results1;
|
8724
8727
|
}.apply(this).reverse();
|
@@ -8759,7 +8762,7 @@ var require_heap = __commonJS({
|
|
8759
8762
|
return result.sort(cmp).reverse();
|
8760
8763
|
};
|
8761
8764
|
nsmallest = function(array, n, cmp) {
|
8762
|
-
var elem, i, los, result, _i2,
|
8765
|
+
var elem, i, los, result, _i2, _j2, _len, _ref, _ref1, _results;
|
8763
8766
|
if (cmp == null) {
|
8764
8767
|
cmp = defaultCmp;
|
8765
8768
|
}
|
@@ -8782,7 +8785,7 @@ var require_heap = __commonJS({
|
|
8782
8785
|
}
|
8783
8786
|
heapify(array, cmp);
|
8784
8787
|
_results = [];
|
8785
|
-
for (i =
|
8788
|
+
for (i = _j2 = 0, _ref1 = min2(n, array.length); 0 <= _ref1 ? _j2 < _ref1 : _j2 > _ref1; i = 0 <= _ref1 ? ++_j2 : --_j2) {
|
8786
8789
|
_results.push(heappop(array, cmp));
|
8787
8790
|
}
|
8788
8791
|
return _results;
|
@@ -17477,7 +17480,7 @@ function getTableName(table4) {
|
|
17477
17480
|
function getTableUniqueName(table4) {
|
17478
17481
|
return `${table4[Schema] ?? "public"}.${table4[TableName]}`;
|
17479
17482
|
}
|
17480
|
-
var TableName, Schema, Columns, ExtraConfigColumns, OriginalName, BaseName, IsAlias, ExtraConfigBuilder, IsDrizzleTable, _a3, _b, _c, _d, _e, _f, _g, _h, _i, Table2;
|
17483
|
+
var TableName, Schema, Columns, ExtraConfigColumns, OriginalName, BaseName, IsAlias, ExtraConfigBuilder, IsDrizzleTable, _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, Table2;
|
17481
17484
|
var init_table = __esm({
|
17482
17485
|
"../drizzle-orm/dist/table.js"() {
|
17483
17486
|
"use strict";
|
@@ -17491,32 +17494,34 @@ var init_table = __esm({
|
|
17491
17494
|
IsAlias = Symbol.for("drizzle:IsAlias");
|
17492
17495
|
ExtraConfigBuilder = Symbol.for("drizzle:ExtraConfigBuilder");
|
17493
17496
|
IsDrizzleTable = Symbol.for("drizzle:IsDrizzleTable");
|
17494
|
-
|
17497
|
+
_j = entityKind, _i = TableName, _h = OriginalName, _g = Schema, _f = Columns, _e = ExtraConfigColumns, _d = BaseName, _c = IsAlias, _b = IsDrizzleTable, _a3 = ExtraConfigBuilder;
|
17495
17498
|
Table2 = class {
|
17496
17499
|
constructor(name2, schema4, baseName) {
|
17497
17500
|
/**
|
17498
17501
|
* @internal
|
17499
17502
|
* Can be changed if the table is aliased.
|
17500
17503
|
*/
|
17501
|
-
__publicField(this,
|
17504
|
+
__publicField(this, _i);
|
17502
17505
|
/**
|
17503
17506
|
* @internal
|
17504
17507
|
* Used to store the original name of the table, before any aliasing.
|
17505
17508
|
*/
|
17509
|
+
__publicField(this, _h);
|
17510
|
+
/** @internal */
|
17506
17511
|
__publicField(this, _g);
|
17507
17512
|
/** @internal */
|
17508
17513
|
__publicField(this, _f);
|
17509
17514
|
/** @internal */
|
17510
17515
|
__publicField(this, _e);
|
17511
|
-
/** @internal */
|
17512
|
-
__publicField(this, _d);
|
17513
17516
|
/**
|
17514
17517
|
* @internal
|
17515
17518
|
* Used to store the table name before the transformation via the `tableCreator` functions.
|
17516
17519
|
*/
|
17517
|
-
__publicField(this,
|
17520
|
+
__publicField(this, _d);
|
17518
17521
|
/** @internal */
|
17519
|
-
__publicField(this,
|
17522
|
+
__publicField(this, _c, false);
|
17523
|
+
/** @internal */
|
17524
|
+
__publicField(this, _b, true);
|
17520
17525
|
/** @internal */
|
17521
17526
|
__publicField(this, _a3);
|
17522
17527
|
this[TableName] = this[OriginalName] = name2;
|
@@ -17524,7 +17529,7 @@ var init_table = __esm({
|
|
17524
17529
|
this[BaseName] = baseName;
|
17525
17530
|
}
|
17526
17531
|
};
|
17527
|
-
__publicField(Table2,
|
17532
|
+
__publicField(Table2, _j, "Table");
|
17528
17533
|
/** @internal */
|
17529
17534
|
__publicField(Table2, "Symbol", {
|
17530
17535
|
Name: TableName,
|
@@ -18100,7 +18105,7 @@ var version;
|
|
18100
18105
|
var init_version = __esm({
|
18101
18106
|
"../drizzle-orm/dist/version.js"() {
|
18102
18107
|
"use strict";
|
18103
|
-
version = "0.
|
18108
|
+
version = "0.33.0";
|
18104
18109
|
}
|
18105
18110
|
});
|
18106
18111
|
|
@@ -18202,6 +18207,12 @@ function fillPlaceholders(params, values) {
|
|
18202
18207
|
}
|
18203
18208
|
return values[p.name];
|
18204
18209
|
}
|
18210
|
+
if (is(p, Param) && is(p.value, Placeholder)) {
|
18211
|
+
if (!(p.value.name in values)) {
|
18212
|
+
throw new Error(`No value for placeholder "${p.value.name}" was provided`);
|
18213
|
+
}
|
18214
|
+
return p.encoder.mapToDriverValue(values[p.value.name]);
|
18215
|
+
}
|
18205
18216
|
return p;
|
18206
18217
|
});
|
18207
18218
|
}
|
@@ -18315,6 +18326,9 @@ var init_sql = __esm({
|
|
18315
18326
|
};
|
18316
18327
|
}
|
18317
18328
|
if (is(chunk, Param)) {
|
18329
|
+
if (is(chunk.value, Placeholder)) {
|
18330
|
+
return { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ["none"] };
|
18331
|
+
}
|
18318
18332
|
const mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);
|
18319
18333
|
if (is(mappedValue, _SQL)) {
|
18320
18334
|
return this.buildQueryFromSourceParams([mappedValue], config);
|
@@ -24636,6 +24650,30 @@ function minRangeForIdentityBasedOn(columnType) {
|
|
24636
24650
|
function stringFromDatabaseIdentityProperty(field) {
|
24637
24651
|
return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
|
24638
24652
|
}
|
24653
|
+
function buildArrayString(array, sqlType) {
|
24654
|
+
sqlType = sqlType.split("[")[0];
|
24655
|
+
const values = array.map((value) => {
|
24656
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
24657
|
+
return value.toString();
|
24658
|
+
} else if (typeof value === "boolean") {
|
24659
|
+
return value ? "true" : "false";
|
24660
|
+
} else if (Array.isArray(value)) {
|
24661
|
+
return buildArrayString(value, sqlType);
|
24662
|
+
} else if (value instanceof Date) {
|
24663
|
+
if (sqlType === "date") {
|
24664
|
+
return `"${value.toISOString().split("T")[0]}"`;
|
24665
|
+
} else if (sqlType === "timestamp") {
|
24666
|
+
return `"${value.toISOString().replace("T", " ").slice(0, 23)}"`;
|
24667
|
+
} else {
|
24668
|
+
return `"${value.toISOString()}"`;
|
24669
|
+
}
|
24670
|
+
} else if (typeof value === "object") {
|
24671
|
+
return `"${JSON.stringify(value).replaceAll('"', '\\"')}"`;
|
24672
|
+
}
|
24673
|
+
return `"${value}"`;
|
24674
|
+
}).join(",");
|
24675
|
+
return `{${values}}`;
|
24676
|
+
}
|
24639
24677
|
var dialect4, indexName, generatePgSnapshot, trimChar, fromDatabase, columnToDefault, defaultForColumn;
|
24640
24678
|
var init_pgSerializer = __esm({
|
24641
24679
|
"src/serializer/pgSerializer.ts"() {
|
@@ -24646,6 +24684,7 @@ var init_pgSerializer = __esm({
|
|
24646
24684
|
init_pg_core();
|
24647
24685
|
init_vector3();
|
24648
24686
|
init_outputs();
|
24687
|
+
init_utils();
|
24649
24688
|
init_serializer();
|
24650
24689
|
dialect4 = new PgDialect();
|
24651
24690
|
indexName = (tableName, columns) => {
|
@@ -24752,6 +24791,11 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
|
|
24752
24791
|
} else {
|
24753
24792
|
columnToSet.default = `'${column4.default.toISOString()}'`;
|
24754
24793
|
}
|
24794
|
+
} else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column4.default)) {
|
24795
|
+
columnToSet.default = `'${buildArrayString(
|
24796
|
+
column4.default,
|
24797
|
+
sqlTypeLowered
|
24798
|
+
)}'::${sqlTypeLowered}`;
|
24755
24799
|
} else {
|
24756
24800
|
columnToSet.default = column4.default;
|
24757
24801
|
}
|
@@ -29031,7 +29075,7 @@ The unique constraint ${source_default.underline.blue(
|
|
29031
29075
|
primaryKeys.forEach((it) => {
|
29032
29076
|
if (it.columns.length > 1) {
|
29033
29077
|
primaryKeysObject[it.getName()] = {
|
29034
|
-
columns: it.columns.map((it2) => it2.name)
|
29078
|
+
columns: it.columns.map((it2) => it2.name),
|
29035
29079
|
name: it.getName()
|
29036
29080
|
};
|
29037
29081
|
} else {
|
@@ -29156,7 +29200,6 @@ The unique constraint ${source_default.underline.blue(
|
|
29156
29200
|
}
|
29157
29201
|
for (const [key, value] of Object.entries(tableToPk)) {
|
29158
29202
|
if (value.length > 1) {
|
29159
|
-
value.sort();
|
29160
29203
|
result[key].compositePrimaryKeys = {
|
29161
29204
|
[`${key}_${value.join("_")}_pk`]: {
|
29162
29205
|
columns: value,
|
@@ -33600,7 +33643,7 @@ We have encountered a collision between the index name on columns ${source_defau
|
|
33600
33643
|
onUpdate = true;
|
33601
33644
|
}
|
33602
33645
|
const newColumn = {
|
33603
|
-
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !columnType.startsWith(
|
33646
|
+
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !["decimal", "char", "varchar"].some((type) => columnType.startsWith(type)) ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
|
33604
33647
|
autoincrement: isAutoincrement,
|
33605
33648
|
name: columnName,
|
33606
33649
|
type: changedType,
|
@@ -34817,6 +34860,37 @@ var updateUpToV6 = (json) => {
|
|
34817
34860
|
enums
|
34818
34861
|
};
|
34819
34862
|
};
|
34863
|
+
var updateUpToV7 = (json) => {
|
34864
|
+
const schema4 = pgSchemaV6.parse(json);
|
34865
|
+
const tables = Object.fromEntries(
|
34866
|
+
Object.entries(schema4.tables).map((it) => {
|
34867
|
+
const table4 = it[1];
|
34868
|
+
const mappedIndexes = Object.fromEntries(
|
34869
|
+
Object.entries(table4.indexes).map((idx) => {
|
34870
|
+
const { columns, ...rest } = idx[1];
|
34871
|
+
const mappedColumns = columns.map((it2) => {
|
34872
|
+
return {
|
34873
|
+
expression: it2,
|
34874
|
+
isExpression: false,
|
34875
|
+
asc: true,
|
34876
|
+
nulls: "last",
|
34877
|
+
opClass: void 0
|
34878
|
+
};
|
34879
|
+
});
|
34880
|
+
return [idx[0], { columns: mappedColumns, with: {}, ...rest }];
|
34881
|
+
})
|
34882
|
+
);
|
34883
|
+
return [it[0], { ...table4, indexes: mappedIndexes }];
|
34884
|
+
})
|
34885
|
+
);
|
34886
|
+
return {
|
34887
|
+
...schema4,
|
34888
|
+
version: "7",
|
34889
|
+
dialect: "postgresql",
|
34890
|
+
sequences: {},
|
34891
|
+
tables
|
34892
|
+
};
|
34893
|
+
};
|
34820
34894
|
|
34821
34895
|
// src/cli/commands/sqliteIntrospect.ts
|
34822
34896
|
var import_hanji6 = __toESM(require_hanji());
|
@@ -35473,7 +35547,13 @@ var pushMySQLSchema = async (imports, drizzleInstance, databaseName) => {
|
|
35473
35547
|
};
|
35474
35548
|
};
|
35475
35549
|
var upPgSnapshot = (snapshot) => {
|
35476
|
-
|
35550
|
+
if (snapshot.version === "5") {
|
35551
|
+
return updateUpToV7(updateUpToV6(snapshot));
|
35552
|
+
}
|
35553
|
+
if (snapshot.version === "6") {
|
35554
|
+
return updateUpToV7(snapshot);
|
35555
|
+
}
|
35556
|
+
return snapshot;
|
35477
35557
|
};
|
35478
35558
|
// Annotate the CommonJS export names for ESM import in node:
|
35479
35559
|
0 && (module.exports = {
|
package/api.mjs
CHANGED
@@ -8343,6 +8343,9 @@ var init_sqliteSchema = __esm({
|
|
8343
8343
|
});
|
8344
8344
|
|
8345
8345
|
// src/utils.ts
|
8346
|
+
function isPgArrayType(sqlType) {
|
8347
|
+
return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
|
8348
|
+
}
|
8346
8349
|
var copy, prepareMigrationMeta, schemaRenameKey, tableRenameKey, columnRenameKey;
|
8347
8350
|
var init_utils = __esm({
|
8348
8351
|
"src/utils.ts"() {
|
@@ -8716,14 +8719,14 @@ var require_heap = __commonJS({
|
|
8716
8719
|
return item;
|
8717
8720
|
};
|
8718
8721
|
heapify = function(array, cmp) {
|
8719
|
-
var i, _i2,
|
8722
|
+
var i, _i2, _j2, _len, _ref, _ref1, _results, _results1;
|
8720
8723
|
if (cmp == null) {
|
8721
8724
|
cmp = defaultCmp;
|
8722
8725
|
}
|
8723
8726
|
_ref1 = function() {
|
8724
8727
|
_results1 = [];
|
8725
|
-
for (var
|
8726
|
-
_results1.push(
|
8728
|
+
for (var _j3 = 0, _ref2 = floor(array.length / 2); 0 <= _ref2 ? _j3 < _ref2 : _j3 > _ref2; 0 <= _ref2 ? _j3++ : _j3--) {
|
8729
|
+
_results1.push(_j3);
|
8727
8730
|
}
|
8728
8731
|
return _results1;
|
8729
8732
|
}.apply(this).reverse();
|
@@ -8764,7 +8767,7 @@ var require_heap = __commonJS({
|
|
8764
8767
|
return result.sort(cmp).reverse();
|
8765
8768
|
};
|
8766
8769
|
nsmallest = function(array, n, cmp) {
|
8767
|
-
var elem, i, los, result, _i2,
|
8770
|
+
var elem, i, los, result, _i2, _j2, _len, _ref, _ref1, _results;
|
8768
8771
|
if (cmp == null) {
|
8769
8772
|
cmp = defaultCmp;
|
8770
8773
|
}
|
@@ -8787,7 +8790,7 @@ var require_heap = __commonJS({
|
|
8787
8790
|
}
|
8788
8791
|
heapify(array, cmp);
|
8789
8792
|
_results = [];
|
8790
|
-
for (i =
|
8793
|
+
for (i = _j2 = 0, _ref1 = min2(n, array.length); 0 <= _ref1 ? _j2 < _ref1 : _j2 > _ref1; i = 0 <= _ref1 ? ++_j2 : --_j2) {
|
8791
8794
|
_results.push(heappop(array, cmp));
|
8792
8795
|
}
|
8793
8796
|
return _results;
|
@@ -17482,7 +17485,7 @@ function getTableName(table4) {
|
|
17482
17485
|
function getTableUniqueName(table4) {
|
17483
17486
|
return `${table4[Schema] ?? "public"}.${table4[TableName]}`;
|
17484
17487
|
}
|
17485
|
-
var TableName, Schema, Columns, ExtraConfigColumns, OriginalName, BaseName, IsAlias, ExtraConfigBuilder, IsDrizzleTable, _a3, _b, _c, _d, _e, _f, _g, _h, _i, Table2;
|
17488
|
+
var TableName, Schema, Columns, ExtraConfigColumns, OriginalName, BaseName, IsAlias, ExtraConfigBuilder, IsDrizzleTable, _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, Table2;
|
17486
17489
|
var init_table = __esm({
|
17487
17490
|
"../drizzle-orm/dist/table.js"() {
|
17488
17491
|
"use strict";
|
@@ -17496,32 +17499,34 @@ var init_table = __esm({
|
|
17496
17499
|
IsAlias = Symbol.for("drizzle:IsAlias");
|
17497
17500
|
ExtraConfigBuilder = Symbol.for("drizzle:ExtraConfigBuilder");
|
17498
17501
|
IsDrizzleTable = Symbol.for("drizzle:IsDrizzleTable");
|
17499
|
-
|
17502
|
+
_j = entityKind, _i = TableName, _h = OriginalName, _g = Schema, _f = Columns, _e = ExtraConfigColumns, _d = BaseName, _c = IsAlias, _b = IsDrizzleTable, _a3 = ExtraConfigBuilder;
|
17500
17503
|
Table2 = class {
|
17501
17504
|
constructor(name2, schema4, baseName) {
|
17502
17505
|
/**
|
17503
17506
|
* @internal
|
17504
17507
|
* Can be changed if the table is aliased.
|
17505
17508
|
*/
|
17506
|
-
__publicField(this,
|
17509
|
+
__publicField(this, _i);
|
17507
17510
|
/**
|
17508
17511
|
* @internal
|
17509
17512
|
* Used to store the original name of the table, before any aliasing.
|
17510
17513
|
*/
|
17514
|
+
__publicField(this, _h);
|
17515
|
+
/** @internal */
|
17511
17516
|
__publicField(this, _g);
|
17512
17517
|
/** @internal */
|
17513
17518
|
__publicField(this, _f);
|
17514
17519
|
/** @internal */
|
17515
17520
|
__publicField(this, _e);
|
17516
|
-
/** @internal */
|
17517
|
-
__publicField(this, _d);
|
17518
17521
|
/**
|
17519
17522
|
* @internal
|
17520
17523
|
* Used to store the table name before the transformation via the `tableCreator` functions.
|
17521
17524
|
*/
|
17522
|
-
__publicField(this,
|
17525
|
+
__publicField(this, _d);
|
17523
17526
|
/** @internal */
|
17524
|
-
__publicField(this,
|
17527
|
+
__publicField(this, _c, false);
|
17528
|
+
/** @internal */
|
17529
|
+
__publicField(this, _b, true);
|
17525
17530
|
/** @internal */
|
17526
17531
|
__publicField(this, _a3);
|
17527
17532
|
this[TableName] = this[OriginalName] = name2;
|
@@ -17529,7 +17534,7 @@ var init_table = __esm({
|
|
17529
17534
|
this[BaseName] = baseName;
|
17530
17535
|
}
|
17531
17536
|
};
|
17532
|
-
__publicField(Table2,
|
17537
|
+
__publicField(Table2, _j, "Table");
|
17533
17538
|
/** @internal */
|
17534
17539
|
__publicField(Table2, "Symbol", {
|
17535
17540
|
Name: TableName,
|
@@ -18105,7 +18110,7 @@ var version;
|
|
18105
18110
|
var init_version = __esm({
|
18106
18111
|
"../drizzle-orm/dist/version.js"() {
|
18107
18112
|
"use strict";
|
18108
|
-
version = "0.
|
18113
|
+
version = "0.33.0";
|
18109
18114
|
}
|
18110
18115
|
});
|
18111
18116
|
|
@@ -18207,6 +18212,12 @@ function fillPlaceholders(params, values) {
|
|
18207
18212
|
}
|
18208
18213
|
return values[p.name];
|
18209
18214
|
}
|
18215
|
+
if (is(p, Param) && is(p.value, Placeholder)) {
|
18216
|
+
if (!(p.value.name in values)) {
|
18217
|
+
throw new Error(`No value for placeholder "${p.value.name}" was provided`);
|
18218
|
+
}
|
18219
|
+
return p.encoder.mapToDriverValue(values[p.value.name]);
|
18220
|
+
}
|
18210
18221
|
return p;
|
18211
18222
|
});
|
18212
18223
|
}
|
@@ -18320,6 +18331,9 @@ var init_sql = __esm({
|
|
18320
18331
|
};
|
18321
18332
|
}
|
18322
18333
|
if (is(chunk, Param)) {
|
18334
|
+
if (is(chunk.value, Placeholder)) {
|
18335
|
+
return { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk], typings: ["none"] };
|
18336
|
+
}
|
18323
18337
|
const mappedValue = chunk.value === null ? null : chunk.encoder.mapToDriverValue(chunk.value);
|
18324
18338
|
if (is(mappedValue, _SQL)) {
|
18325
18339
|
return this.buildQueryFromSourceParams([mappedValue], config);
|
@@ -24641,6 +24655,30 @@ function minRangeForIdentityBasedOn(columnType) {
|
|
24641
24655
|
function stringFromDatabaseIdentityProperty(field) {
|
24642
24656
|
return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
|
24643
24657
|
}
|
24658
|
+
function buildArrayString(array, sqlType) {
|
24659
|
+
sqlType = sqlType.split("[")[0];
|
24660
|
+
const values = array.map((value) => {
|
24661
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
24662
|
+
return value.toString();
|
24663
|
+
} else if (typeof value === "boolean") {
|
24664
|
+
return value ? "true" : "false";
|
24665
|
+
} else if (Array.isArray(value)) {
|
24666
|
+
return buildArrayString(value, sqlType);
|
24667
|
+
} else if (value instanceof Date) {
|
24668
|
+
if (sqlType === "date") {
|
24669
|
+
return `"${value.toISOString().split("T")[0]}"`;
|
24670
|
+
} else if (sqlType === "timestamp") {
|
24671
|
+
return `"${value.toISOString().replace("T", " ").slice(0, 23)}"`;
|
24672
|
+
} else {
|
24673
|
+
return `"${value.toISOString()}"`;
|
24674
|
+
}
|
24675
|
+
} else if (typeof value === "object") {
|
24676
|
+
return `"${JSON.stringify(value).replaceAll('"', '\\"')}"`;
|
24677
|
+
}
|
24678
|
+
return `"${value}"`;
|
24679
|
+
}).join(",");
|
24680
|
+
return `{${values}}`;
|
24681
|
+
}
|
24644
24682
|
var dialect4, indexName, generatePgSnapshot, trimChar, fromDatabase, columnToDefault, defaultForColumn;
|
24645
24683
|
var init_pgSerializer = __esm({
|
24646
24684
|
"src/serializer/pgSerializer.ts"() {
|
@@ -24651,6 +24689,7 @@ var init_pgSerializer = __esm({
|
|
24651
24689
|
init_pg_core();
|
24652
24690
|
init_vector3();
|
24653
24691
|
init_outputs();
|
24692
|
+
init_utils();
|
24654
24693
|
init_serializer();
|
24655
24694
|
dialect4 = new PgDialect();
|
24656
24695
|
indexName = (tableName, columns) => {
|
@@ -24757,6 +24796,11 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
|
|
24757
24796
|
} else {
|
24758
24797
|
columnToSet.default = `'${column4.default.toISOString()}'`;
|
24759
24798
|
}
|
24799
|
+
} else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column4.default)) {
|
24800
|
+
columnToSet.default = `'${buildArrayString(
|
24801
|
+
column4.default,
|
24802
|
+
sqlTypeLowered
|
24803
|
+
)}'::${sqlTypeLowered}`;
|
24760
24804
|
} else {
|
24761
24805
|
columnToSet.default = column4.default;
|
24762
24806
|
}
|
@@ -29036,7 +29080,7 @@ The unique constraint ${source_default.underline.blue(
|
|
29036
29080
|
primaryKeys.forEach((it) => {
|
29037
29081
|
if (it.columns.length > 1) {
|
29038
29082
|
primaryKeysObject[it.getName()] = {
|
29039
|
-
columns: it.columns.map((it2) => it2.name)
|
29083
|
+
columns: it.columns.map((it2) => it2.name),
|
29040
29084
|
name: it.getName()
|
29041
29085
|
};
|
29042
29086
|
} else {
|
@@ -29161,7 +29205,6 @@ The unique constraint ${source_default.underline.blue(
|
|
29161
29205
|
}
|
29162
29206
|
for (const [key, value] of Object.entries(tableToPk)) {
|
29163
29207
|
if (value.length > 1) {
|
29164
|
-
value.sort();
|
29165
29208
|
result[key].compositePrimaryKeys = {
|
29166
29209
|
[`${key}_${value.join("_")}_pk`]: {
|
29167
29210
|
columns: value,
|
@@ -33605,7 +33648,7 @@ We have encountered a collision between the index name on columns ${source_defau
|
|
33605
33648
|
onUpdate = true;
|
33606
33649
|
}
|
33607
33650
|
const newColumn = {
|
33608
|
-
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !columnType.startsWith(
|
33651
|
+
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !["decimal", "char", "varchar"].some((type) => columnType.startsWith(type)) ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
|
33609
33652
|
autoincrement: isAutoincrement,
|
33610
33653
|
name: columnName,
|
33611
33654
|
type: changedType,
|
@@ -34808,6 +34851,37 @@ var updateUpToV6 = (json) => {
|
|
34808
34851
|
enums
|
34809
34852
|
};
|
34810
34853
|
};
|
34854
|
+
var updateUpToV7 = (json) => {
|
34855
|
+
const schema4 = pgSchemaV6.parse(json);
|
34856
|
+
const tables = Object.fromEntries(
|
34857
|
+
Object.entries(schema4.tables).map((it) => {
|
34858
|
+
const table4 = it[1];
|
34859
|
+
const mappedIndexes = Object.fromEntries(
|
34860
|
+
Object.entries(table4.indexes).map((idx) => {
|
34861
|
+
const { columns, ...rest } = idx[1];
|
34862
|
+
const mappedColumns = columns.map((it2) => {
|
34863
|
+
return {
|
34864
|
+
expression: it2,
|
34865
|
+
isExpression: false,
|
34866
|
+
asc: true,
|
34867
|
+
nulls: "last",
|
34868
|
+
opClass: void 0
|
34869
|
+
};
|
34870
|
+
});
|
34871
|
+
return [idx[0], { columns: mappedColumns, with: {}, ...rest }];
|
34872
|
+
})
|
34873
|
+
);
|
34874
|
+
return [it[0], { ...table4, indexes: mappedIndexes }];
|
34875
|
+
})
|
34876
|
+
);
|
34877
|
+
return {
|
34878
|
+
...schema4,
|
34879
|
+
version: "7",
|
34880
|
+
dialect: "postgresql",
|
34881
|
+
sequences: {},
|
34882
|
+
tables
|
34883
|
+
};
|
34884
|
+
};
|
34811
34885
|
|
34812
34886
|
// src/cli/commands/sqliteIntrospect.ts
|
34813
34887
|
var import_hanji6 = __toESM(require_hanji());
|
@@ -35464,7 +35538,13 @@ var pushMySQLSchema = async (imports, drizzleInstance, databaseName) => {
|
|
35464
35538
|
};
|
35465
35539
|
};
|
35466
35540
|
var upPgSnapshot = (snapshot) => {
|
35467
|
-
|
35541
|
+
if (snapshot.version === "5") {
|
35542
|
+
return updateUpToV7(updateUpToV6(snapshot));
|
35543
|
+
}
|
35544
|
+
if (snapshot.version === "6") {
|
35545
|
+
return updateUpToV7(snapshot);
|
35546
|
+
}
|
35547
|
+
return snapshot;
|
35468
35548
|
};
|
35469
35549
|
export {
|
35470
35550
|
generateDrizzleJson,
|
package/bin.cjs
CHANGED
@@ -6561,6 +6561,9 @@ var init_sqliteSchema = __esm({
|
|
6561
6561
|
});
|
6562
6562
|
|
6563
6563
|
// src/utils.ts
|
6564
|
+
function isPgArrayType(sqlType) {
|
6565
|
+
return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
|
6566
|
+
}
|
6564
6567
|
var import_fs, import_path, import_url, copy, objectValues, assertV1OutFolder, dryJournal, prepareOutFolder, validatorForDialect, validateWithReport, prepareMigrationFolder, prepareMigrationMeta, schemaRenameKey, tableRenameKey, columnRenameKey, normaliseSQLiteUrl;
|
6565
6568
|
var init_utils = __esm({
|
6566
6569
|
"src/utils.ts"() {
|
@@ -18107,7 +18110,7 @@ We have encountered a collision between the index name on columns ${source_defau
|
|
18107
18110
|
onUpdate = true;
|
18108
18111
|
}
|
18109
18112
|
const newColumn = {
|
18110
|
-
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !columnType.startsWith(
|
18113
|
+
default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !["decimal", "char", "varchar"].some((type) => columnType.startsWith(type)) ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
|
18111
18114
|
autoincrement: isAutoincrement,
|
18112
18115
|
name: columnName,
|
18113
18116
|
type: changedType,
|
@@ -18406,6 +18409,30 @@ function minRangeForIdentityBasedOn(columnType) {
|
|
18406
18409
|
function stringFromDatabaseIdentityProperty(field) {
|
18407
18410
|
return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
|
18408
18411
|
}
|
18412
|
+
function buildArrayString(array, sqlType) {
|
18413
|
+
sqlType = sqlType.split("[")[0];
|
18414
|
+
const values = array.map((value) => {
|
18415
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
18416
|
+
return value.toString();
|
18417
|
+
} else if (typeof value === "boolean") {
|
18418
|
+
return value ? "true" : "false";
|
18419
|
+
} else if (Array.isArray(value)) {
|
18420
|
+
return buildArrayString(value, sqlType);
|
18421
|
+
} else if (value instanceof Date) {
|
18422
|
+
if (sqlType === "date") {
|
18423
|
+
return `"${value.toISOString().split("T")[0]}"`;
|
18424
|
+
} else if (sqlType === "timestamp") {
|
18425
|
+
return `"${value.toISOString().replace("T", " ").slice(0, 23)}"`;
|
18426
|
+
} else {
|
18427
|
+
return `"${value.toISOString()}"`;
|
18428
|
+
}
|
18429
|
+
} else if (typeof value === "object") {
|
18430
|
+
return `"${JSON.stringify(value).replaceAll('"', '\\"')}"`;
|
18431
|
+
}
|
18432
|
+
return `"${value}"`;
|
18433
|
+
}).join(",");
|
18434
|
+
return `{${values}}`;
|
18435
|
+
}
|
18409
18436
|
var import_drizzle_orm5, import_pg_core2, import_pg_core3, dialect5, indexName2, generatePgSnapshot, trimChar, fromDatabase2, columnToDefault, defaultForColumn;
|
18410
18437
|
var init_pgSerializer = __esm({
|
18411
18438
|
"src/serializer/pgSerializer.ts"() {
|
@@ -18416,6 +18443,7 @@ var init_pgSerializer = __esm({
|
|
18416
18443
|
import_pg_core3 = require("drizzle-orm/pg-core");
|
18417
18444
|
init_vector();
|
18418
18445
|
init_outputs();
|
18446
|
+
init_utils();
|
18419
18447
|
init_serializer();
|
18420
18448
|
dialect5 = new import_pg_core2.PgDialect();
|
18421
18449
|
indexName2 = (tableName, columns) => {
|
@@ -18524,6 +18552,11 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
|
|
18524
18552
|
} else {
|
18525
18553
|
columnToSet.default = `'${column7.default.toISOString()}'`;
|
18526
18554
|
}
|
18555
|
+
} else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column7.default)) {
|
18556
|
+
columnToSet.default = `'${buildArrayString(
|
18557
|
+
column7.default,
|
18558
|
+
sqlTypeLowered
|
18559
|
+
)}'::${sqlTypeLowered}`;
|
18527
18560
|
} else {
|
18528
18561
|
columnToSet.default = column7.default;
|
18529
18562
|
}
|
@@ -19570,7 +19603,7 @@ The unique constraint ${source_default.underline.blue(
|
|
19570
19603
|
primaryKeys.forEach((it) => {
|
19571
19604
|
if (it.columns.length > 1) {
|
19572
19605
|
primaryKeysObject[it.getName()] = {
|
19573
|
-
columns: it.columns.map((it2) => it2.name)
|
19606
|
+
columns: it.columns.map((it2) => it2.name),
|
19574
19607
|
name: it.getName()
|
19575
19608
|
};
|
19576
19609
|
} else {
|
@@ -19696,7 +19729,6 @@ The unique constraint ${source_default.underline.blue(
|
|
19696
19729
|
}
|
19697
19730
|
for (const [key, value] of Object.entries(tableToPk)) {
|
19698
19731
|
if (value.length > 1) {
|
19699
|
-
value.sort();
|
19700
19732
|
result[key].compositePrimaryKeys = {
|
19701
19733
|
[`${key}_${value.join("_")}_pk`]: {
|
19702
19734
|
columns: value,
|
@@ -75265,6 +75297,7 @@ var init_introspect_mysql = __esm({
|
|
75265
75297
|
patched = patched.startsWith("datetime(") ? "datetime" : patched;
|
75266
75298
|
patched = patched.startsWith("varbinary(") ? "varbinary" : patched;
|
75267
75299
|
patched = patched.startsWith("int(") ? "int" : patched;
|
75300
|
+
patched = patched.startsWith("double(") ? "double" : patched;
|
75268
75301
|
return patched;
|
75269
75302
|
}).filter((type) => {
|
75270
75303
|
return mysqlImportsList.has(type);
|
@@ -83369,7 +83402,7 @@ init_utils2();
|
|
83369
83402
|
var version2 = async () => {
|
83370
83403
|
const { npmVersion } = await ormCoreVersions();
|
83371
83404
|
const ormVersion = npmVersion ? `drizzle-orm: v${npmVersion}` : "";
|
83372
|
-
const envVersion = "0.
|
83405
|
+
const envVersion = "0.24.0-6205f01";
|
83373
83406
|
const kitVersion = envVersion ? `v${envVersion}` : "--";
|
83374
83407
|
const versions = `drizzle-kit: ${kitVersion}
|
83375
83408
|
${ormVersion}`;
|
package/package.json
CHANGED
package/utils.js
CHANGED
@@ -568,6 +568,7 @@ __export(utils_exports, {
|
|
568
568
|
columnRenameKey: () => columnRenameKey,
|
569
569
|
copy: () => copy,
|
570
570
|
dryJournal: () => dryJournal,
|
571
|
+
isPgArrayType: () => isPgArrayType,
|
571
572
|
kloudMeta: () => kloudMeta,
|
572
573
|
normaliseSQLiteUrl: () => normaliseSQLiteUrl,
|
573
574
|
objectValues: () => objectValues,
|
@@ -5738,12 +5739,16 @@ var normaliseSQLiteUrl = (it, type) => {
|
|
5738
5739
|
}
|
5739
5740
|
assertUnreachable(type);
|
5740
5741
|
};
|
5742
|
+
function isPgArrayType(sqlType) {
|
5743
|
+
return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
|
5744
|
+
}
|
5741
5745
|
// Annotate the CommonJS export names for ESM import in node:
|
5742
5746
|
0 && (module.exports = {
|
5743
5747
|
assertV1OutFolder,
|
5744
5748
|
columnRenameKey,
|
5745
5749
|
copy,
|
5746
5750
|
dryJournal,
|
5751
|
+
isPgArrayType,
|
5747
5752
|
kloudMeta,
|
5748
5753
|
normaliseSQLiteUrl,
|
5749
5754
|
objectValues,
|
package/utils.mjs
CHANGED
@@ -5720,11 +5720,15 @@ var normaliseSQLiteUrl = (it, type) => {
|
|
5720
5720
|
}
|
5721
5721
|
assertUnreachable(type);
|
5722
5722
|
};
|
5723
|
+
function isPgArrayType(sqlType) {
|
5724
|
+
return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
|
5725
|
+
}
|
5723
5726
|
export {
|
5724
5727
|
assertV1OutFolder,
|
5725
5728
|
columnRenameKey,
|
5726
5729
|
copy,
|
5727
5730
|
dryJournal,
|
5731
|
+
isPgArrayType,
|
5728
5732
|
kloudMeta,
|
5729
5733
|
normaliseSQLiteUrl,
|
5730
5734
|
objectValues,
|