drizzle-kit 0.14.7 → 0.14.8

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.
Files changed (2) hide show
  1. package/index.js +54 -14
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -11516,10 +11516,11 @@ var init_serializer = __esm({
11516
11516
  });
11517
11517
 
11518
11518
  // src/sqlgenerator.ts
11519
- var pgNativeTypes, Convertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SQLiteCreateTableConvertor, CreateTypeEnumConvertor, AlterTypeAddValueConvertor, DropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, SQLiteAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, SqliteAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, SqliteAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnSetNotNullConvertor, SqliteAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, SqliteAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, SqliteCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, AlterForeignKeyConvertor, SqliteAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, SqliteDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, SqliteDropIndexConvertor, convertors, fromJson;
11519
+ var pgNativeTypes, Convertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SQLiteCreateTableConvertor, CreateTypeEnumConvertor, AlterTypeAddValueConvertor, DropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, SQLiteAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, SqliteAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, SqliteAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnSetNotNullConvertor, SqliteAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, SqliteAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, SqliteCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, SqliteAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, SqliteDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, SqliteDropIndexConvertor, convertors, fromJson;
11520
11520
  var init_sqlgenerator = __esm({
11521
11521
  "src/sqlgenerator.ts"() {
11522
11522
  init_schemaValidator();
11523
+ init_mysqlSchema();
11523
11524
  init_sqliteSchema();
11524
11525
  pgNativeTypes = /* @__PURE__ */ new Set([
11525
11526
  "uuid",
@@ -11982,7 +11983,7 @@ var init_sqlgenerator = __esm({
11982
11983
  columnsTo,
11983
11984
  onDelete,
11984
11985
  onUpdate
11985
- } = PgSquasher.unsquashFK(statement.data);
11986
+ } = MySqlSquasher.unsquashFK(statement.data);
11986
11987
  const onDeleteStatement = onDelete ? `ON DELETE ${onDelete}` : "";
11987
11988
  const onUpdateStatement = onUpdate ? `ON UPDATE ${onUpdate}` : "";
11988
11989
  const fromColumnsString = columnsFrom.map((it) => `\`${it}\``).join(",");
@@ -11990,11 +11991,26 @@ var init_sqlgenerator = __esm({
11990
11991
  return `ALTER TABLE ${tableFrom} ADD CONSTRAINT ${name} FOREIGN KEY (${fromColumnsString}) REFERENCES ${tableTo}(${toColumnsString}) ${onDeleteStatement} ${onUpdateStatement};`.replace(/ +/g, " ").trim();
11991
11992
  }
11992
11993
  };
11993
- AlterForeignKeyConvertor = class extends Convertor {
11994
- can(statement) {
11995
- return statement.type === "alter_reference";
11994
+ PgAlterForeignKeyConvertor = class extends Convertor {
11995
+ can(statement, dialect8) {
11996
+ return statement.type === "alter_reference" && dialect8 === "pg";
11996
11997
  }
11997
11998
  convert(statement) {
11999
+ const newFk = PgSquasher.unsquashFK(statement.data);
12000
+ const oldFk = PgSquasher.unsquashFK(statement.oldFkey);
12001
+ let sql = `ALTER TABLE ${oldFk.tableFrom} DROP FOREIGN KEY ${oldFk.name};
12002
+ `;
12003
+ const onDeleteStatement = newFk.onDelete || "";
12004
+ const onUpdateStatement = newFk.onUpdate || "";
12005
+ const fromColumnsString = newFk.columnsFrom.map((it) => `"${it}"`).join(",");
12006
+ const toColumnsString = newFk.columnsTo.map((it) => `"${it}"`).join(",");
12007
+ const alterStatement = `ALTER TABLE ${newFk.tableFrom} ADD CONSTRAINT ${newFk.name} FOREIGN KEY (${fromColumnsString}) REFERENCES ${newFk.tableTo}(${toColumnsString}) ${onDeleteStatement} ${onUpdateStatement}`.replace(/ +/g, " ").trim();
12008
+ sql += "DO $$ BEGIN\n";
12009
+ sql += " " + alterStatement + ";\n";
12010
+ sql += "EXCEPTION\n";
12011
+ sql += " WHEN duplicate_object THEN null;\n";
12012
+ sql += "END $$;\n";
12013
+ return sql;
11998
12014
  throw new Error("TODO");
11999
12015
  }
12000
12016
  };
@@ -12133,7 +12149,7 @@ var init_sqlgenerator = __esm({
12133
12149
  convertors.push(new PgAlterTableAlterColumnDropDefaultConvertor());
12134
12150
  convertors.push(new PgCreateForeignKeyConvertor());
12135
12151
  convertors.push(new MySqlCreateForeignKeyConvertor());
12136
- convertors.push(new AlterForeignKeyConvertor());
12152
+ convertors.push(new PgAlterForeignKeyConvertor());
12137
12153
  convertors.push(new PgDeleteForeignKeyConvertor());
12138
12154
  convertors.push(new MySqlDeleteForeignKeyConvertor());
12139
12155
  convertors.push(new SQLiteAlterTableAlterColumnSetTypeConvertor());
@@ -18384,6 +18400,7 @@ var init_jsonDiffer = __esm({
18384
18400
  const addedForeignKeys = Object.fromEntries(
18385
18401
  Object.entries(table4.foreignKeys__added || {}).concat(Object.entries(table4.foreignKeys || {}).filter((it) => it[0].includes("__added"))).map((entry) => [entry[0].replace("__added", ""), entry[1]])
18386
18402
  );
18403
+ const alteredForeignKeys = Object.fromEntries(Object.entries(table4.foreignKeys || {}).filter((it) => !it[0].endsWith("__added") && !it[0].endsWith("__deleted")).map((entry) => [entry[0], entry[1]]));
18387
18404
  const mappedAltered = altered.map((it) => alternationsInColumn(it));
18388
18405
  return {
18389
18406
  name: table4.name,
@@ -18393,7 +18410,8 @@ var init_jsonDiffer = __esm({
18393
18410
  addedIndexes,
18394
18411
  deletedIndexes,
18395
18412
  addedForeignKeys,
18396
- deletedForeignKeys
18413
+ deletedForeignKeys,
18414
+ alteredForeignKeys
18397
18415
  };
18398
18416
  };
18399
18417
  alternationsInColumn = (column5) => {
@@ -18441,7 +18459,7 @@ var init_jsonDiffer = __esm({
18441
18459
  });
18442
18460
 
18443
18461
  // src/jsonStatements.ts
18444
- var prepareCreateTableJson, prepareSQLiteCreateTable, prepareDropTableJson, prepareRenameTableJson, prepareCreateEnumJson, prepareAddValuesToEnumJson, prepareRenameColumns, prepareAlterTableColumnsJson, _prepareDropColumns, _prepareAddColumns, _prepareSQLiteAddColumns, _prepareAlterColumns, prepareCreateIndexesJson, prepareCreateReferencesJson, prepareDropReferencesJson, prepareDropIndexesJson;
18462
+ var prepareCreateTableJson, prepareSQLiteCreateTable, prepareDropTableJson, prepareRenameTableJson, prepareCreateEnumJson, prepareAddValuesToEnumJson, prepareRenameColumns, prepareAlterTableColumnsJson, _prepareDropColumns, _prepareAddColumns, _prepareSQLiteAddColumns, _prepareAlterColumns, prepareCreateIndexesJson, prepareCreateReferencesJson, prepareDropReferencesJson, prepareAlterReferencesJson, prepareDropIndexesJson;
18445
18463
  var init_jsonStatements = __esm({
18446
18464
  "src/jsonStatements.ts"() {
18447
18465
  init_sqliteSchema();
@@ -18652,6 +18670,16 @@ var init_jsonStatements = __esm({
18652
18670
  };
18653
18671
  });
18654
18672
  };
18673
+ prepareAlterReferencesJson = (tableName, foreignKeys) => {
18674
+ return Object.values(foreignKeys).map((fkData) => {
18675
+ return {
18676
+ type: "alter_reference",
18677
+ tableName,
18678
+ data: fkData.__new,
18679
+ oldFkey: fkData.__old
18680
+ };
18681
+ });
18682
+ };
18655
18683
  prepareDropIndexesJson = (tableName, indexes) => {
18656
18684
  return Object.values(indexes).map((indexData) => {
18657
18685
  return {
@@ -18820,7 +18848,14 @@ var init_snapshotsDiffer = __esm({
18820
18848
  addedIndexes: recordType(stringType(), stringType()),
18821
18849
  deletedIndexes: recordType(stringType(), stringType()),
18822
18850
  addedForeignKeys: recordType(stringType(), stringType()),
18823
- deletedForeignKeys: recordType(stringType(), stringType())
18851
+ deletedForeignKeys: recordType(stringType(), stringType()),
18852
+ alteredForeignKeys: recordType(
18853
+ stringType(),
18854
+ objectType({
18855
+ __new: stringType(),
18856
+ __old: stringType()
18857
+ }).strict()
18858
+ )
18824
18859
  }).strict();
18825
18860
  diffResultScheme = objectType({
18826
18861
  addedTables: tableScheme.array(),
@@ -18889,7 +18924,8 @@ var init_snapshotsDiffer = __esm({
18889
18924
  addedIndexes: table4.addedIndexes,
18890
18925
  deletedIndexes: table4.deletedIndexes,
18891
18926
  addedForeignKeys: table4.addedForeignKeys,
18892
- deletedForeignKeys: table4.deletedForeignKeys
18927
+ deletedForeignKeys: table4.deletedForeignKeys,
18928
+ alteredForeignKeys: table4.alteredForeignKeys
18893
18929
  };
18894
18930
  allAlteredResolved.push(resolved);
18895
18931
  }
@@ -18909,7 +18945,7 @@ var init_snapshotsDiffer = __esm({
18909
18945
  const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => {
18910
18946
  return prepareDropIndexesJson(it.name, it.deletedIndexes || {});
18911
18947
  }).flat();
18912
- const jsonReferencesForCreatedTables = created.map((it) => {
18948
+ const jsonCreateReferencesForCreatedTables = created.map((it) => {
18913
18949
  return prepareCreateReferencesJson(it.name, it.foreignKeys);
18914
18950
  }).flat();
18915
18951
  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
@@ -18918,9 +18954,13 @@ var init_snapshotsDiffer = __esm({
18918
18954
  it.name,
18919
18955
  it.deletedForeignKeys
18920
18956
  );
18921
- return [...forAdded, ...forAltered];
18957
+ const alteredFKs = prepareAlterReferencesJson(
18958
+ it.name,
18959
+ it.alteredForeignKeys
18960
+ );
18961
+ return [...forAdded, ...forAltered, ...alteredFKs];
18922
18962
  }).flat();
18923
- const jsonCreateReferences = jsonReferencesForCreatedTables;
18963
+ const jsonCreateReferences = jsonCreateReferencesForCreatedTables;
18924
18964
  const jsonAlterReferencesForAlteredTables = jsonReferencesForAllAlteredTables;
18925
18965
  const createEnums = (_b = (_a = typedResult.addedEnums) == null ? void 0 : _a.map((it) => {
18926
18966
  return prepareCreateEnumJson(it.name, it.values);
@@ -25632,7 +25672,7 @@ init_source();
25632
25672
  // package.json
25633
25673
  var package_default = {
25634
25674
  name: "drizzle-kit",
25635
- version: "0.14.7",
25675
+ version: "0.14.8",
25636
25676
  repository: "https://github.com/drizzle-team/drizzle-kit-mirror",
25637
25677
  author: "Alex Blokh <aleksandrblokh@gmail.com>",
25638
25678
  license: "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-kit",
3
- "version": "0.14.7",
3
+ "version": "0.14.8",
4
4
  "repository": "https://github.com/drizzle-team/drizzle-kit-mirror",
5
5
  "author": "Alex Blokh <aleksandrblokh@gmail.com>",
6
6
  "license": "MIT",