drizzle-kit 0.23.2 → 0.24.0-6205f01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,
|