drizzle-kit 0.19.4-befd1c5 → 0.19.5-0b8d69c
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/index.cjs +531 -157
- package/package.json +2 -2
- package/utils.js +110 -25
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "drizzle-kit",
|
3
|
-
"version": "0.19.
|
3
|
+
"version": "0.19.5-0b8d69c",
|
4
4
|
"repository": "https://github.com/drizzle-team/drizzle-kit-mirror",
|
5
5
|
"author": "Drizzle Team",
|
6
6
|
"license": "MIT",
|
@@ -79,7 +79,7 @@
|
|
79
79
|
"better-sqlite3": "^8.4.0",
|
80
80
|
"dockerode": "^3.3.4",
|
81
81
|
"dotenv": "^16.0.3",
|
82
|
-
"drizzle-orm": "0.27.
|
82
|
+
"drizzle-orm": "0.27.1-8a21e7b",
|
83
83
|
"eslint": "^8.29.0",
|
84
84
|
"eslint-config-prettier": "^8.5.0",
|
85
85
|
"eslint-plugin-prettier": "^4.2.1",
|
package/utils.js
CHANGED
@@ -12822,7 +12822,8 @@ var tableSquashed = objectType({
|
|
12822
12822
|
columns: recordType(stringType(), column),
|
12823
12823
|
indexes: recordType(stringType(), stringType()),
|
12824
12824
|
foreignKeys: recordType(stringType(), stringType()),
|
12825
|
-
compositePrimaryKeys: recordType(stringType(), stringType())
|
12825
|
+
compositePrimaryKeys: recordType(stringType(), stringType()),
|
12826
|
+
uniqueConstraints: recordType(stringType(), stringType()).default({})
|
12826
12827
|
}).strict();
|
12827
12828
|
var schemaSquashed = objectType({
|
12828
12829
|
version: literalType("5"),
|
@@ -13237,12 +13238,17 @@ var tableV33 = objectType({
|
|
13237
13238
|
indexes: recordType(stringType(), index3),
|
13238
13239
|
foreignKeys: recordType(stringType(), fk3)
|
13239
13240
|
}).strict();
|
13241
|
+
var uniqueConstraint3 = objectType({
|
13242
|
+
name: stringType(),
|
13243
|
+
columns: stringType().array()
|
13244
|
+
}).strict();
|
13240
13245
|
var table3 = objectType({
|
13241
13246
|
name: stringType(),
|
13242
13247
|
columns: recordType(stringType(), column3),
|
13243
13248
|
indexes: recordType(stringType(), index3),
|
13244
13249
|
foreignKeys: recordType(stringType(), fk3),
|
13245
|
-
compositePrimaryKeys: recordType(stringType(), compositePK3)
|
13250
|
+
compositePrimaryKeys: recordType(stringType(), compositePK3),
|
13251
|
+
uniqueConstraints: recordType(stringType(), uniqueConstraint3).default({})
|
13246
13252
|
}).strict();
|
13247
13253
|
var dialect2 = enumType(["sqlite"]);
|
13248
13254
|
var schemaHash3 = objectType({
|
@@ -13280,7 +13286,8 @@ var tableSquashed3 = objectType({
|
|
13280
13286
|
columns: recordType(stringType(), column3),
|
13281
13287
|
indexes: recordType(stringType(), stringType()),
|
13282
13288
|
foreignKeys: recordType(stringType(), stringType()),
|
13283
|
-
compositePrimaryKeys: recordType(stringType(), stringType())
|
13289
|
+
compositePrimaryKeys: recordType(stringType(), stringType()),
|
13290
|
+
uniqueConstraints: recordType(stringType(), stringType()).default({})
|
13284
13291
|
}).strict();
|
13285
13292
|
var schemaSquashed2 = objectType({
|
13286
13293
|
version: latestVersion,
|
@@ -13303,6 +13310,13 @@ var SQLiteSquasher = {
|
|
13303
13310
|
});
|
13304
13311
|
return result;
|
13305
13312
|
},
|
13313
|
+
squashUnique: (unq) => {
|
13314
|
+
return `${unq.name};${unq.columns.join(",")}`;
|
13315
|
+
},
|
13316
|
+
unsquashUnique: (unq) => {
|
13317
|
+
const [name, columns] = unq.split(";");
|
13318
|
+
return { name, columns: columns.split(",") };
|
13319
|
+
},
|
13306
13320
|
squashFK: (fk4) => {
|
13307
13321
|
return `${fk4.name};${fk4.tableFrom};${fk4.columnsFrom.join(",")};${fk4.tableTo};${fk4.columnsTo.join(",")};${fk4.onUpdate ?? ""};${fk4.onDelete ?? ""}`;
|
13308
13322
|
},
|
@@ -13666,9 +13680,9 @@ var PgCreateTableConvertor = class extends Convertor {
|
|
13666
13680
|
const primaryKeyStatement = column4.primaryKey ? " PRIMARY KEY" : "";
|
13667
13681
|
const notNullStatement = column4.notNull ? " NOT NULL" : "";
|
13668
13682
|
const defaultStatement = column4.default !== void 0 ? ` DEFAULT ${column4.default}` : "";
|
13669
|
-
const
|
13683
|
+
const uniqueConstraint4 = column4.isUnique ? ` CONSTRAINT "${column4.uniqueName}" UNIQUE${column4.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}` : "";
|
13670
13684
|
const type = isPgNativeType(column4.type) ? column4.type : `"${column4.type}"`;
|
13671
|
-
statement += ` "${column4.name}" ${type}${primaryKeyStatement}${defaultStatement}${notNullStatement}${
|
13685
|
+
statement += ` "${column4.name}" ${type}${primaryKeyStatement}${defaultStatement}${notNullStatement}${uniqueConstraint4}`;
|
13672
13686
|
statement += i === columns.length - 1 ? "" : ",\n";
|
13673
13687
|
}
|
13674
13688
|
if (typeof compositePKs !== "undefined" && compositePKs.length > 0) {
|
@@ -13677,10 +13691,10 @@ var PgCreateTableConvertor = class extends Convertor {
|
|
13677
13691
|
statement += ` CONSTRAINT ${st.compositePkName} PRIMARY KEY("${compositePK4.columns.join(`","`)}")`;
|
13678
13692
|
}
|
13679
13693
|
if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
|
13680
|
-
for (const
|
13694
|
+
for (const uniqueConstraint4 of uniqueConstraints) {
|
13681
13695
|
statement += ",\n";
|
13682
|
-
const unsquashedUnique = PgSquasher.unsquashUnique(
|
13683
|
-
statement += ` CONSTRAINT ${unsquashedUnique.name} UNIQUE("${unsquashedUnique.columns.join(`","`)}")`;
|
13696
|
+
const unsquashedUnique = PgSquasher.unsquashUnique(uniqueConstraint4);
|
13697
|
+
statement += ` CONSTRAINT "${unsquashedUnique.name}" UNIQUE${unsquashedUnique.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}("${unsquashedUnique.columns.join(`","`)}")`;
|
13684
13698
|
}
|
13685
13699
|
}
|
13686
13700
|
statement += `
|
@@ -13713,13 +13727,13 @@ var MySqlCreateTableConvertor = class extends Convertor {
|
|
13713
13727
|
if (typeof compositePKs !== "undefined" && compositePKs.length > 0) {
|
13714
13728
|
statement += ",\n";
|
13715
13729
|
const compositePK4 = MySqlSquasher.unsquashPK(compositePKs[0]);
|
13716
|
-
statement += ` CONSTRAINT
|
13730
|
+
statement += ` CONSTRAINT \`${st.compositePkName}\` PRIMARY KEY(\`${compositePK4.columns.join(`\`,\``)}\`)`;
|
13717
13731
|
}
|
13718
13732
|
if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
|
13719
|
-
for (const
|
13733
|
+
for (const uniqueConstraint4 of uniqueConstraints) {
|
13720
13734
|
statement += ",\n";
|
13721
|
-
const unsquashedUnique = MySqlSquasher.unsquashUnique(
|
13722
|
-
statement += ` CONSTRAINT
|
13735
|
+
const unsquashedUnique = MySqlSquasher.unsquashUnique(uniqueConstraint4);
|
13736
|
+
statement += ` CONSTRAINT \`${unsquashedUnique.name}\` UNIQUE(\`${unsquashedUnique.columns.join(`\`,\``)}\`)`;
|
13723
13737
|
}
|
13724
13738
|
}
|
13725
13739
|
statement += `
|
@@ -13734,22 +13748,29 @@ var SQLiteCreateTableConvertor = class extends Convertor {
|
|
13734
13748
|
return statement.type === "sqlite_create_table" && dialect3 === "sqlite";
|
13735
13749
|
}
|
13736
13750
|
convert(st) {
|
13737
|
-
const {
|
13751
|
+
const {
|
13752
|
+
tableName,
|
13753
|
+
columns,
|
13754
|
+
referenceData,
|
13755
|
+
compositePKs,
|
13756
|
+
uniqueConstraints
|
13757
|
+
} = st;
|
13738
13758
|
let statement = "";
|
13739
|
-
statement += `CREATE TABLE \`${tableName}\` (
|
13759
|
+
statement += `CREATE TABLE \`${tableName}\` (
|
13760
|
+
`;
|
13740
13761
|
for (let i = 0; i < columns.length; i++) {
|
13741
13762
|
const column4 = columns[i];
|
13742
13763
|
const primaryKeyStatement = column4.primaryKey ? " PRIMARY KEY" : "";
|
13743
13764
|
const notNullStatement = column4.notNull ? " NOT NULL" : "";
|
13744
13765
|
const defaultStatement = column4.default !== void 0 ? ` DEFAULT ${column4.default}` : "";
|
13745
13766
|
const autoincrementStatement = column4.autoincrement ? " AUTOINCREMENT" : "";
|
13746
|
-
statement += "
|
13767
|
+
statement += " ";
|
13747
13768
|
statement += `\`${column4.name}\` ${column4.type}${primaryKeyStatement}${autoincrementStatement}${defaultStatement}${notNullStatement}`;
|
13748
|
-
statement += "
|
13769
|
+
statement += i === columns.length - 1 ? "" : ",\n";
|
13749
13770
|
}
|
13750
13771
|
compositePKs.forEach((it) => {
|
13751
|
-
statement += "
|
13752
|
-
statement += `PRIMARY KEY(${it.map((it2) => `\`${it2}\``).join(", ")})
|
13772
|
+
statement += ",\n ";
|
13773
|
+
statement += `PRIMARY KEY(${it.map((it2) => `\`${it2}\``).join(", ")})`;
|
13753
13774
|
});
|
13754
13775
|
for (let i = 0; i < referenceData.length; i++) {
|
13755
13776
|
const referenceAsString = referenceData[i];
|
@@ -13766,11 +13787,17 @@ var SQLiteCreateTableConvertor = class extends Convertor {
|
|
13766
13787
|
const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : "";
|
13767
13788
|
const fromColumnsString = columnsFrom.map((it) => `\`${it}\``).join(",");
|
13768
13789
|
const toColumnsString = columnsTo.map((it) => `\`${it}\``).join(",");
|
13790
|
+
statement += ",";
|
13769
13791
|
statement += "\n ";
|
13770
13792
|
statement += `FOREIGN KEY (${fromColumnsString}) REFERENCES \`${tableTo}\`(${toColumnsString})${onUpdateStatement}${onDeleteStatement}`;
|
13771
|
-
statement += ",";
|
13772
13793
|
}
|
13773
|
-
|
13794
|
+
if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
|
13795
|
+
for (const uniqueConstraint4 of uniqueConstraints) {
|
13796
|
+
statement += ",\n";
|
13797
|
+
const unsquashedUnique = MySqlSquasher.unsquashUnique(uniqueConstraint4);
|
13798
|
+
statement += ` CONSTRAINT ${unsquashedUnique.name} UNIQUE(\`${unsquashedUnique.columns.join(`\`,\``)}\`)`;
|
13799
|
+
}
|
13800
|
+
}
|
13774
13801
|
statement += `
|
13775
13802
|
`;
|
13776
13803
|
statement += `);`;
|
@@ -13786,7 +13813,7 @@ var PgAlterTableAddUniqueConstraintConvertor = class extends Convertor {
|
|
13786
13813
|
convert(statement) {
|
13787
13814
|
const unsquashed = PgSquasher.unsquashUnique(statement.data);
|
13788
13815
|
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
13789
|
-
return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${unsquashed.name}" UNIQUE("${unsquashed.columns.join('","')}");`;
|
13816
|
+
return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${unsquashed.name}" UNIQUE${unsquashed.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}("${unsquashed.columns.join('","')}");`;
|
13790
13817
|
}
|
13791
13818
|
};
|
13792
13819
|
var PgAlterTableDropUniqueConstraintConvertor = class extends Convertor {
|
@@ -13819,6 +13846,32 @@ var MySQLAlterTableDropUniqueConstraintConvertor = class extends Convertor {
|
|
13819
13846
|
return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT \`${unsquashed.name}\`;`;
|
13820
13847
|
}
|
13821
13848
|
};
|
13849
|
+
var SQLiteAlterTableAddUniqueConstraintConvertor = class extends Convertor {
|
13850
|
+
can(statement, dialect3) {
|
13851
|
+
return statement.type === "create_unique_constraint" && dialect3 === "sqlite";
|
13852
|
+
}
|
13853
|
+
convert(statement) {
|
13854
|
+
return `/*
|
13855
|
+
SQLite does not support "Adding unique constraint to an existing table" out of the box, we do not generate automatic migration for that, so it has to be done manually
|
13856
|
+
Please refer to: https://www.techonthenet.com/sqlite/unique.php
|
13857
|
+
|
13858
|
+
Due to that we don't generate migration automatically and it has to be done manually
|
13859
|
+
*/`;
|
13860
|
+
}
|
13861
|
+
};
|
13862
|
+
var SQLiteAlterTableDropUniqueConstraintConvertor = class extends Convertor {
|
13863
|
+
can(statement, dialect3) {
|
13864
|
+
return statement.type === "delete_unique_constraint" && dialect3 === "sqlite";
|
13865
|
+
}
|
13866
|
+
convert(statement) {
|
13867
|
+
return `/*
|
13868
|
+
SQLite does not support "Dropping unique constraint from an existing table" out of the box, we do not generate automatic migration for that, so it has to be done manually
|
13869
|
+
Please refer to: https://www.techonthenet.com/sqlite/unique.php
|
13870
|
+
|
13871
|
+
Due to that we don't generate migration automatically and it has to be done manually
|
13872
|
+
*/`;
|
13873
|
+
}
|
13874
|
+
};
|
13822
13875
|
var CreateTypeEnumConvertor = class extends Convertor {
|
13823
13876
|
can(statement) {
|
13824
13877
|
return statement.type === "create_type_enum";
|
@@ -14812,6 +14865,8 @@ convertors.push(new SQLiteAlterTableAlterColumnSetTypeConvertor());
|
|
14812
14865
|
convertors.push(new SqliteAlterForeignKeyConvertor());
|
14813
14866
|
convertors.push(new SqliteDeleteForeignKeyConvertor());
|
14814
14867
|
convertors.push(new SqliteCreateForeignKeyConvertor());
|
14868
|
+
convertors.push(new SQLiteAlterTableAddUniqueConstraintConvertor());
|
14869
|
+
convertors.push(new SQLiteAlterTableDropUniqueConstraintConvertor());
|
14815
14870
|
convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
|
14816
14871
|
convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
|
14817
14872
|
convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
|
@@ -14900,7 +14955,7 @@ var prepareMySqlCreateTableJson = (table4, json2) => {
|
|
14900
14955
|
};
|
14901
14956
|
};
|
14902
14957
|
var prepareSQLiteCreateTable = (table4) => {
|
14903
|
-
const { name, columns } = table4;
|
14958
|
+
const { name, columns, uniqueConstraints } = table4;
|
14904
14959
|
const references2 = Object.values(table4.foreignKeys);
|
14905
14960
|
const composites = Object.values(table4.compositePrimaryKeys).map(
|
14906
14961
|
(it) => SQLiteSquasher.unsquashPK(it)
|
@@ -14910,7 +14965,8 @@ var prepareSQLiteCreateTable = (table4) => {
|
|
14910
14965
|
tableName: name,
|
14911
14966
|
columns: Object.values(columns),
|
14912
14967
|
referenceData: references2,
|
14913
|
-
compositePKs: composites
|
14968
|
+
compositePKs: composites,
|
14969
|
+
uniqueConstraints: Object.values(uniqueConstraints)
|
14914
14970
|
};
|
14915
14971
|
};
|
14916
14972
|
var prepareDropTableJson = (table4) => {
|
@@ -15597,7 +15653,37 @@ var diffResultScheme = objectType({
|
|
15597
15653
|
}).strict();
|
15598
15654
|
var applySnapshotsDiff = async (json1, json2, dialect3, schemasResolver, tablesResolver, columnsResolver, prevFull, curFull) => {
|
15599
15655
|
var _a, _b;
|
15600
|
-
|
15656
|
+
let diffResult;
|
15657
|
+
if (dialect3 === "mysql") {
|
15658
|
+
for (const tableName in json1.tables) {
|
15659
|
+
const table4 = json1.tables[tableName];
|
15660
|
+
for (const indexName in table4.indexes) {
|
15661
|
+
const index4 = MySqlSquasher.unsquashIdx(table4.indexes[indexName]);
|
15662
|
+
if (index4.isUnique) {
|
15663
|
+
table4.uniqueConstraints[indexName] = MySqlSquasher.squashUnique({
|
15664
|
+
name: index4.name,
|
15665
|
+
columns: index4.columns
|
15666
|
+
});
|
15667
|
+
delete json1.tables[tableName].indexes[index4.name];
|
15668
|
+
}
|
15669
|
+
}
|
15670
|
+
}
|
15671
|
+
for (const tableName in json2.tables) {
|
15672
|
+
const table4 = json2.tables[tableName];
|
15673
|
+
for (const indexName in table4.indexes) {
|
15674
|
+
const index4 = MySqlSquasher.unsquashIdx(table4.indexes[indexName]);
|
15675
|
+
if (index4.isUnique) {
|
15676
|
+
table4.uniqueConstraints[indexName] = MySqlSquasher.squashUnique({
|
15677
|
+
name: index4.name,
|
15678
|
+
columns: index4.columns
|
15679
|
+
});
|
15680
|
+
delete json2.tables[tableName].indexes[index4.name];
|
15681
|
+
}
|
15682
|
+
}
|
15683
|
+
}
|
15684
|
+
diffResult = applyJsonDiff(json1, json2);
|
15685
|
+
}
|
15686
|
+
diffResult = applyJsonDiff(json1, json2);
|
15601
15687
|
if (Object.keys(diffResult).length === 0) {
|
15602
15688
|
return { statements: [], sqlStatements: [], _meta: void 0 };
|
15603
15689
|
}
|
@@ -15768,7 +15854,6 @@ var applySnapshotsDiff = async (json1, json2, dialect3, schemasResolver, tablesR
|
|
15768
15854
|
prevFull
|
15769
15855
|
);
|
15770
15856
|
}
|
15771
|
-
;
|
15772
15857
|
alteredCompositePKs = prepareAlterCompositePrimaryKeyMySql(
|
15773
15858
|
it.name,
|
15774
15859
|
it.alteredCompositePKs,
|