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 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: "6";
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: string[];
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, string> | undefined;
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: "6";
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: string[];
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, string> | undefined;
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, _j, _len, _ref, _ref1, _results, _results1;
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 _j2 = 0, _ref2 = floor(array.length / 2); 0 <= _ref2 ? _j2 < _ref2 : _j2 > _ref2; 0 <= _ref2 ? _j2++ : _j2--) {
8721
- _results1.push(_j2);
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, _j, _len, _ref, _ref1, _results;
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 = _j = 0, _ref1 = min2(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i = 0 <= _ref1 ? ++_j : --_j) {
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
- _i = entityKind, _h = TableName, _g = OriginalName, _f = Schema, _e = Columns, _d = ExtraConfigColumns, _c = BaseName, _b = IsAlias, _a3 = ExtraConfigBuilder;
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, _h);
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, _c);
17520
+ __publicField(this, _d);
17518
17521
  /** @internal */
17519
- __publicField(this, _b, false);
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, _i, "Table");
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.32.2";
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).sort(),
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("decimal") ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
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
- return updateUpToV6(snapshot);
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, _j, _len, _ref, _ref1, _results, _results1;
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 _j2 = 0, _ref2 = floor(array.length / 2); 0 <= _ref2 ? _j2 < _ref2 : _j2 > _ref2; 0 <= _ref2 ? _j2++ : _j2--) {
8726
- _results1.push(_j2);
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, _j, _len, _ref, _ref1, _results;
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 = _j = 0, _ref1 = min2(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i = 0 <= _ref1 ? ++_j : --_j) {
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
- _i = entityKind, _h = TableName, _g = OriginalName, _f = Schema, _e = Columns, _d = ExtraConfigColumns, _c = BaseName, _b = IsAlias, _a3 = ExtraConfigBuilder;
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, _h);
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, _c);
17525
+ __publicField(this, _d);
17523
17526
  /** @internal */
17524
- __publicField(this, _b, false);
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, _i, "Table");
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.32.2";
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).sort(),
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("decimal") ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
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
- return updateUpToV6(snapshot);
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("decimal") ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${columnDefault}'`,
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).sort(),
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.23.2";
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-kit",
3
- "version": "0.23.2",
3
+ "version": "0.24.0-6205f01",
4
4
  "homepage": "https://orm.drizzle.team",
5
5
  "keywords": [
6
6
  "drizzle",
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,