drizzle-kit 0.22.0-12a1bf8 → 0.22.0-25da1e6
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/bin.cjs +443 -230
- package/index.d.mts +1 -8
- package/index.d.ts +1 -8
- package/package.json +1 -1
- package/payload.d.mts +100 -18
- package/payload.d.ts +100 -18
- package/payload.js +299 -186
- package/payload.mjs +312 -197
- package/utils-studio.js +122 -8
- package/utils-studio.mjs +122 -8
- package/utils.js +23 -2
- package/utils.mjs +23 -2
package/bin.cjs
CHANGED
|
@@ -1092,7 +1092,7 @@ var init_views = __esm({
|
|
|
1092
1092
|
return source_default.grey(msg);
|
|
1093
1093
|
};
|
|
1094
1094
|
error = (error2, greyMsg = "") => {
|
|
1095
|
-
return `${source_default.
|
|
1095
|
+
return `${source_default.bgRed.bold(" Error ")} ${error2} ${greyMsg ? source_default.grey(greyMsg) : ""}`.trim();
|
|
1096
1096
|
};
|
|
1097
1097
|
schema = (schema5) => {
|
|
1098
1098
|
const tables = Object.values(schema5.tables);
|
|
@@ -1451,6 +1451,9 @@ Is ${source_default.bold.blue(
|
|
|
1451
1451
|
function assertUnreachable(x3) {
|
|
1452
1452
|
throw new Error("Didn't expect to get here");
|
|
1453
1453
|
}
|
|
1454
|
+
function softAssertUnreachable(x3) {
|
|
1455
|
+
return null;
|
|
1456
|
+
}
|
|
1454
1457
|
var originUUID, snapshotVersion, mapValues, mapKeys, mapEntries;
|
|
1455
1458
|
var init_global = __esm({
|
|
1456
1459
|
"src/global.ts"() {
|
|
@@ -5474,7 +5477,16 @@ var init_mysqlSchema = __esm({
|
|
|
5474
5477
|
objectType({ isDefaultAnExpression: booleanType().optional() }).optional()
|
|
5475
5478
|
)
|
|
5476
5479
|
}).optional()
|
|
5477
|
-
)
|
|
5480
|
+
).optional(),
|
|
5481
|
+
indexes: recordType(
|
|
5482
|
+
stringType(),
|
|
5483
|
+
objectType({
|
|
5484
|
+
columns: recordType(
|
|
5485
|
+
stringType(),
|
|
5486
|
+
objectType({ isExpression: booleanType().optional() }).optional()
|
|
5487
|
+
)
|
|
5488
|
+
}).optional()
|
|
5489
|
+
).optional()
|
|
5478
5490
|
}).optional();
|
|
5479
5491
|
dialect = literalType("mysql");
|
|
5480
5492
|
schemaHash = objectType({
|
|
@@ -6139,7 +6151,7 @@ var init_pgSchema = __esm({
|
|
|
6139
6151
|
});
|
|
6140
6152
|
|
|
6141
6153
|
// src/serializer/sqliteSchema.ts
|
|
6142
|
-
var index3, fk3, compositePK3, column3, tableV33, uniqueConstraint3, table3, dialect2, schemaHash3, schemaInternalV32, schemaInternalV42, schemaInternalV52, latestVersion, schemaInternal2, schemaV32, schemaV42, schemaV52, schema3, tableSquashed3, schemaSquashed2, SQLiteSquasher, squashSqliteScheme, drySQLite, sqliteSchemaV5, sqliteSchema, SQLiteSchemaSquashed, backwardCompatibleSqliteSchema;
|
|
6154
|
+
var index3, fk3, compositePK3, column3, tableV33, uniqueConstraint3, table3, dialect2, schemaHash3, schemaInternalV32, schemaInternalV42, schemaInternalV52, kitInternals3, latestVersion, schemaInternal2, schemaV32, schemaV42, schemaV52, schema3, tableSquashed3, schemaSquashed2, SQLiteSquasher, squashSqliteScheme, drySQLite, sqliteSchemaV5, sqliteSchema, SQLiteSchemaSquashed, backwardCompatibleSqliteSchema;
|
|
6143
6155
|
var init_sqliteSchema = __esm({
|
|
6144
6156
|
"src/serializer/sqliteSchema.ts"() {
|
|
6145
6157
|
"use strict";
|
|
@@ -6217,6 +6229,17 @@ var init_sqliteSchema = __esm({
|
|
|
6217
6229
|
columns: recordType(stringType(), stringType())
|
|
6218
6230
|
})
|
|
6219
6231
|
}).strict();
|
|
6232
|
+
kitInternals3 = objectType({
|
|
6233
|
+
indexes: recordType(
|
|
6234
|
+
stringType(),
|
|
6235
|
+
objectType({
|
|
6236
|
+
columns: recordType(
|
|
6237
|
+
stringType(),
|
|
6238
|
+
objectType({ isExpression: booleanType().optional() }).optional()
|
|
6239
|
+
)
|
|
6240
|
+
}).optional()
|
|
6241
|
+
).optional()
|
|
6242
|
+
}).optional();
|
|
6220
6243
|
latestVersion = literalType("6");
|
|
6221
6244
|
schemaInternal2 = objectType({
|
|
6222
6245
|
version: latestVersion,
|
|
@@ -6226,7 +6249,8 @@ var init_sqliteSchema = __esm({
|
|
|
6226
6249
|
_meta: objectType({
|
|
6227
6250
|
tables: recordType(stringType(), stringType()),
|
|
6228
6251
|
columns: recordType(stringType(), stringType())
|
|
6229
|
-
})
|
|
6252
|
+
}),
|
|
6253
|
+
internal: kitInternals3
|
|
6230
6254
|
}).strict();
|
|
6231
6255
|
schemaV32 = schemaInternalV32.merge(schemaHash3).strict();
|
|
6232
6256
|
schemaV42 = schemaInternalV42.merge(schemaHash3).strict();
|
|
@@ -7281,7 +7305,7 @@ var require_coerce = __commonJS({
|
|
|
7281
7305
|
var SemVer = require_semver();
|
|
7282
7306
|
var parse7 = require_parse();
|
|
7283
7307
|
var { safeRe: re2, t: t2 } = require_re();
|
|
7284
|
-
var
|
|
7308
|
+
var coerce2 = (version2, options) => {
|
|
7285
7309
|
if (version2 instanceof SemVer) {
|
|
7286
7310
|
return version2;
|
|
7287
7311
|
}
|
|
@@ -7316,7 +7340,7 @@ var require_coerce = __commonJS({
|
|
|
7316
7340
|
const build = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
|
|
7317
7341
|
return parse7(`${major}.${minor}.${patch}${prerelease}${build}`, options);
|
|
7318
7342
|
};
|
|
7319
|
-
module2.exports =
|
|
7343
|
+
module2.exports = coerce2;
|
|
7320
7344
|
}
|
|
7321
7345
|
});
|
|
7322
7346
|
|
|
@@ -8317,7 +8341,7 @@ var require_semver2 = __commonJS({
|
|
|
8317
8341
|
var gte = require_gte();
|
|
8318
8342
|
var lte = require_lte();
|
|
8319
8343
|
var cmp = require_cmp();
|
|
8320
|
-
var
|
|
8344
|
+
var coerce2 = require_coerce();
|
|
8321
8345
|
var Comparator = require_comparator();
|
|
8322
8346
|
var Range = require_range();
|
|
8323
8347
|
var satisfies = require_satisfies();
|
|
@@ -8355,7 +8379,7 @@ var require_semver2 = __commonJS({
|
|
|
8355
8379
|
gte,
|
|
8356
8380
|
lte,
|
|
8357
8381
|
cmp,
|
|
8358
|
-
coerce:
|
|
8382
|
+
coerce: coerce2,
|
|
8359
8383
|
Comparator,
|
|
8360
8384
|
Range,
|
|
8361
8385
|
satisfies,
|
|
@@ -8575,12 +8599,137 @@ var init_utils3 = __esm({
|
|
|
8575
8599
|
}
|
|
8576
8600
|
});
|
|
8577
8601
|
|
|
8602
|
+
// src/schemaValidator.ts
|
|
8603
|
+
var dialect3, commonSquashedSchema, commonSchema;
|
|
8604
|
+
var init_schemaValidator = __esm({
|
|
8605
|
+
"src/schemaValidator.ts"() {
|
|
8606
|
+
"use strict";
|
|
8607
|
+
init_lib();
|
|
8608
|
+
init_mysqlSchema();
|
|
8609
|
+
init_pgSchema();
|
|
8610
|
+
init_sqliteSchema();
|
|
8611
|
+
dialect3 = enumType(["postgresql", "mysql", "sqlite"]);
|
|
8612
|
+
commonSquashedSchema = unionType([
|
|
8613
|
+
pgSchemaSquashed,
|
|
8614
|
+
mysqlSchemaSquashed,
|
|
8615
|
+
SQLiteSchemaSquashed
|
|
8616
|
+
]);
|
|
8617
|
+
commonSchema = unionType([
|
|
8618
|
+
pgSchema,
|
|
8619
|
+
mysqlSchema,
|
|
8620
|
+
sqliteSchema
|
|
8621
|
+
]);
|
|
8622
|
+
}
|
|
8623
|
+
});
|
|
8624
|
+
|
|
8625
|
+
// src/cli/validations/common.ts
|
|
8626
|
+
var assertCollisions, sqliteDriversLiterals, sqliteDriver, postgresDriver, mysqlDriver, driver, configCommonSchema, casing, introspectParams, configIntrospectCliSchema, configGenerateSchema, configPushSchema, wrapParam;
|
|
8627
|
+
var init_common = __esm({
|
|
8628
|
+
"src/cli/validations/common.ts"() {
|
|
8629
|
+
"use strict";
|
|
8630
|
+
init_outputs();
|
|
8631
|
+
init_lib();
|
|
8632
|
+
init_schemaValidator();
|
|
8633
|
+
init_source();
|
|
8634
|
+
assertCollisions = (options, command, inputWhitelist = []) => {
|
|
8635
|
+
const { config, ...rest } = options;
|
|
8636
|
+
let atLeastOneParam = false;
|
|
8637
|
+
for (const key of Object.keys(rest)) {
|
|
8638
|
+
if (inputWhitelist.includes(key))
|
|
8639
|
+
continue;
|
|
8640
|
+
atLeastOneParam = true;
|
|
8641
|
+
}
|
|
8642
|
+
if (!atLeastOneParam && typeof config !== "undefined") {
|
|
8643
|
+
return "config";
|
|
8644
|
+
}
|
|
8645
|
+
if (typeof config === "undefined" && atLeastOneParam) {
|
|
8646
|
+
return "cli";
|
|
8647
|
+
}
|
|
8648
|
+
if (typeof config === "undefined" && !atLeastOneParam) {
|
|
8649
|
+
return "config";
|
|
8650
|
+
}
|
|
8651
|
+
console.log(outputs.common.ambiguousParams(command));
|
|
8652
|
+
process.exit(1);
|
|
8653
|
+
};
|
|
8654
|
+
sqliteDriversLiterals = [
|
|
8655
|
+
literalType("turso"),
|
|
8656
|
+
literalType("d1-http"),
|
|
8657
|
+
literalType("expo")
|
|
8658
|
+
];
|
|
8659
|
+
sqliteDriver = unionType(sqliteDriversLiterals);
|
|
8660
|
+
postgresDriver = literalType("aws-data-api");
|
|
8661
|
+
mysqlDriver = literalType("mysql2");
|
|
8662
|
+
driver = unionType([sqliteDriver, postgresDriver, mysqlDriver]);
|
|
8663
|
+
configCommonSchema = objectType({
|
|
8664
|
+
dialect: dialect3,
|
|
8665
|
+
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8666
|
+
out: stringType().optional(),
|
|
8667
|
+
breakpoints: booleanType().optional().default(true),
|
|
8668
|
+
driver: driver.optional(),
|
|
8669
|
+
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8670
|
+
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"])
|
|
8671
|
+
});
|
|
8672
|
+
casing = unionType([literalType("camel"), literalType("preserve")]).default(
|
|
8673
|
+
"preserve"
|
|
8674
|
+
);
|
|
8675
|
+
introspectParams = objectType({
|
|
8676
|
+
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8677
|
+
out: stringType().optional().default("./drizzle"),
|
|
8678
|
+
breakpoints: booleanType().default(true),
|
|
8679
|
+
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8680
|
+
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8681
|
+
introspect: objectType({
|
|
8682
|
+
casing
|
|
8683
|
+
}).default({ casing: "camel" })
|
|
8684
|
+
});
|
|
8685
|
+
configIntrospectCliSchema = objectType({
|
|
8686
|
+
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8687
|
+
out: stringType().optional().default("./drizzle"),
|
|
8688
|
+
breakpoints: booleanType().default(true),
|
|
8689
|
+
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8690
|
+
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8691
|
+
introspectCasing: unionType([literalType("camel"), literalType("preserve")]).default(
|
|
8692
|
+
"camel"
|
|
8693
|
+
)
|
|
8694
|
+
});
|
|
8695
|
+
configGenerateSchema = objectType({
|
|
8696
|
+
schema: unionType([stringType(), stringType().array()]),
|
|
8697
|
+
out: stringType().optional().default("./drizzle"),
|
|
8698
|
+
breakpoints: booleanType().default(true)
|
|
8699
|
+
});
|
|
8700
|
+
configPushSchema = objectType({
|
|
8701
|
+
dialect: dialect3,
|
|
8702
|
+
schema: unionType([stringType(), stringType().array()]),
|
|
8703
|
+
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8704
|
+
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8705
|
+
verbose: booleanType().default(false),
|
|
8706
|
+
strict: booleanType().default(false),
|
|
8707
|
+
out: stringType().optional()
|
|
8708
|
+
});
|
|
8709
|
+
wrapParam = (name, param, optional = false) => {
|
|
8710
|
+
const check = `[${source_default.green("\u2713")}]`;
|
|
8711
|
+
const cross = `[${source_default.red("x")}]`;
|
|
8712
|
+
if (typeof param === "string") {
|
|
8713
|
+
if (param.length === 0) {
|
|
8714
|
+
return ` ${cross} ${name}: ''`;
|
|
8715
|
+
}
|
|
8716
|
+
return ` ${check} ${name}: '${param}'`;
|
|
8717
|
+
}
|
|
8718
|
+
if (optional) {
|
|
8719
|
+
return source_default.gray(` ${name}?: `);
|
|
8720
|
+
}
|
|
8721
|
+
return ` ${cross} ${name}: ${source_default.gray("undefined")}`;
|
|
8722
|
+
};
|
|
8723
|
+
}
|
|
8724
|
+
});
|
|
8725
|
+
|
|
8578
8726
|
// src/cli/validations/outputs.ts
|
|
8579
8727
|
var withStyle, outputs;
|
|
8580
8728
|
var init_outputs = __esm({
|
|
8581
8729
|
"src/cli/validations/outputs.ts"() {
|
|
8582
8730
|
"use strict";
|
|
8583
8731
|
init_source();
|
|
8732
|
+
init_common();
|
|
8584
8733
|
withStyle = {
|
|
8585
8734
|
error: (str) => `${source_default.red(`${source_default.white.bgRed(" Invalid input ")} ${str}`)}`,
|
|
8586
8735
|
warning: (str) => `${source_default.white.bgGray(" Warning ")} ${str}`,
|
|
@@ -8630,14 +8779,17 @@ var init_outputs = __esm({
|
|
|
8630
8779
|
},
|
|
8631
8780
|
sqlite: {
|
|
8632
8781
|
connection: {
|
|
8633
|
-
driver: () =>
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8782
|
+
driver: () => {
|
|
8783
|
+
const listOfDrivers = sqliteDriversLiterals.map((it) => `'${it.value}'`).join(", ");
|
|
8784
|
+
return withStyle.error(
|
|
8785
|
+
`Either ${listOfDrivers} are available options for 'driver' param`
|
|
8786
|
+
);
|
|
8787
|
+
},
|
|
8788
|
+
url: (driver3) => withStyle.error(
|
|
8789
|
+
`"url" is a required option for driver "${driver3}". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference`
|
|
8638
8790
|
),
|
|
8639
|
-
authToken: (
|
|
8640
|
-
`"authToken" is a required option for driver "${
|
|
8791
|
+
authToken: (driver3) => withStyle.error(
|
|
8792
|
+
`"authToken" is a required option for driver "${driver3}". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference`
|
|
8641
8793
|
)
|
|
8642
8794
|
},
|
|
8643
8795
|
introspect: {},
|
|
@@ -8654,13 +8806,15 @@ var init_mysql = __esm({
|
|
|
8654
8806
|
"use strict";
|
|
8655
8807
|
init_lib();
|
|
8656
8808
|
init_outputs();
|
|
8809
|
+
init_common();
|
|
8810
|
+
init_views();
|
|
8657
8811
|
mysqlCredentials = unionType([
|
|
8658
8812
|
objectType({
|
|
8659
|
-
host: stringType(),
|
|
8660
|
-
port: coerce.number().optional(),
|
|
8661
|
-
user: stringType().
|
|
8662
|
-
password: stringType().optional(),
|
|
8663
|
-
database: stringType(),
|
|
8813
|
+
host: stringType().min(1),
|
|
8814
|
+
port: coerce.number().min(1).optional(),
|
|
8815
|
+
user: stringType().min(1).optional(),
|
|
8816
|
+
password: stringType().min(1).optional(),
|
|
8817
|
+
database: stringType().min(1),
|
|
8664
8818
|
ssl: unionType([
|
|
8665
8819
|
stringType(),
|
|
8666
8820
|
objectType({
|
|
@@ -8676,35 +8830,47 @@ var init_mysql = __esm({
|
|
|
8676
8830
|
]).optional()
|
|
8677
8831
|
}),
|
|
8678
8832
|
objectType({
|
|
8679
|
-
url: stringType()
|
|
8833
|
+
url: stringType().min(1)
|
|
8680
8834
|
})
|
|
8681
8835
|
]);
|
|
8682
8836
|
printConfigConnectionIssues = (options) => {
|
|
8683
|
-
if (
|
|
8684
|
-
|
|
8685
|
-
|
|
8686
|
-
|
|
8687
|
-
|
|
8688
|
-
|
|
8837
|
+
if ("url" in options) {
|
|
8838
|
+
let text2 = `Please provide required params for MySQL driver:
|
|
8839
|
+
`;
|
|
8840
|
+
console.log(error(text2));
|
|
8841
|
+
console.log(wrapParam("url", options.url));
|
|
8842
|
+
process.exit(1);
|
|
8689
8843
|
}
|
|
8844
|
+
let text = `Please provide required params for MySQL driver:
|
|
8845
|
+
`;
|
|
8846
|
+
console.log(error(text));
|
|
8847
|
+
console.log(wrapParam("host", options.host));
|
|
8848
|
+
console.log(wrapParam("port", options.port, true));
|
|
8849
|
+
console.log(wrapParam("user", options.user, true));
|
|
8850
|
+
console.log(wrapParam("password", options.password, true));
|
|
8851
|
+
console.log(wrapParam("database", options.database));
|
|
8852
|
+
console.log(wrapParam("ssl", options.ssl, true));
|
|
8853
|
+
process.exit(1);
|
|
8690
8854
|
};
|
|
8691
8855
|
}
|
|
8692
8856
|
});
|
|
8693
8857
|
|
|
8694
|
-
// src/cli/validations/
|
|
8858
|
+
// src/cli/validations/postgres.ts
|
|
8695
8859
|
var postgresCredentials, printConfigConnectionIssues2;
|
|
8696
|
-
var
|
|
8697
|
-
"src/cli/validations/
|
|
8860
|
+
var init_postgres = __esm({
|
|
8861
|
+
"src/cli/validations/postgres.ts"() {
|
|
8698
8862
|
"use strict";
|
|
8699
8863
|
init_lib();
|
|
8700
|
-
|
|
8864
|
+
init_common();
|
|
8865
|
+
init_views();
|
|
8701
8866
|
postgresCredentials = unionType([
|
|
8702
8867
|
objectType({
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8868
|
+
driver: undefinedType(),
|
|
8869
|
+
host: stringType().min(1),
|
|
8870
|
+
port: coerce.number().min(1).optional(),
|
|
8871
|
+
user: stringType().min(1).optional(),
|
|
8872
|
+
password: stringType().min(1).optional(),
|
|
8873
|
+
database: stringType().min(1),
|
|
8708
8874
|
ssl: unionType([
|
|
8709
8875
|
literalType("require"),
|
|
8710
8876
|
literalType("allow"),
|
|
@@ -8712,26 +8878,60 @@ var init_pg = __esm({
|
|
|
8712
8878
|
literalType("verify-full"),
|
|
8713
8879
|
booleanType(),
|
|
8714
8880
|
objectType({}).passthrough()
|
|
8715
|
-
])
|
|
8881
|
+
]).optional()
|
|
8882
|
+
}).transform((o) => {
|
|
8883
|
+
delete o.driver;
|
|
8884
|
+
return o;
|
|
8716
8885
|
}),
|
|
8717
8886
|
objectType({
|
|
8718
|
-
|
|
8887
|
+
driver: undefinedType(),
|
|
8888
|
+
url: stringType().min(1)
|
|
8889
|
+
}).transform((o) => {
|
|
8890
|
+
delete o.driver;
|
|
8891
|
+
return o;
|
|
8719
8892
|
}),
|
|
8720
8893
|
objectType({
|
|
8721
8894
|
driver: literalType("aws-data-api"),
|
|
8722
|
-
database: stringType(),
|
|
8723
|
-
secretArn: stringType(),
|
|
8724
|
-
resourceArn: stringType()
|
|
8895
|
+
database: stringType().min(1),
|
|
8896
|
+
secretArn: stringType().min(1),
|
|
8897
|
+
resourceArn: stringType().min(1)
|
|
8725
8898
|
})
|
|
8726
8899
|
]);
|
|
8727
8900
|
printConfigConnectionIssues2 = (options) => {
|
|
8728
8901
|
if (options.driver === "aws-data-api") {
|
|
8729
|
-
|
|
8730
|
-
|
|
8902
|
+
let text = `Please provide required params for AWS Data API driver:
|
|
8903
|
+
`;
|
|
8904
|
+
console.log(error(text));
|
|
8905
|
+
console.log(wrapParam("database", options.database));
|
|
8906
|
+
console.log(wrapParam("secretArn", options.secretArn));
|
|
8907
|
+
console.log(wrapParam("resourceArn", options.resourceArn));
|
|
8908
|
+
process.exit(1);
|
|
8731
8909
|
}
|
|
8732
|
-
if (
|
|
8733
|
-
|
|
8910
|
+
if ("url" in options) {
|
|
8911
|
+
let text = `Please provide required params for Postgres driver:
|
|
8912
|
+
`;
|
|
8913
|
+
console.log(error(text));
|
|
8914
|
+
console.log(wrapParam("url", options.url));
|
|
8915
|
+
process.exit(1);
|
|
8916
|
+
}
|
|
8917
|
+
if ("host" in options || "database" in options) {
|
|
8918
|
+
let text = `Please provide required params for Postgres driver:
|
|
8919
|
+
`;
|
|
8920
|
+
console.log(error(text));
|
|
8921
|
+
console.log(wrapParam("host", options.host));
|
|
8922
|
+
console.log(wrapParam("port", options.port, true));
|
|
8923
|
+
console.log(wrapParam("user", options.user, true));
|
|
8924
|
+
console.log(wrapParam("password", options.password, true));
|
|
8925
|
+
console.log(wrapParam("database", options.database));
|
|
8926
|
+
console.log(wrapParam("ssl", options.ssl, true));
|
|
8927
|
+
process.exit(1);
|
|
8734
8928
|
}
|
|
8929
|
+
console.log(
|
|
8930
|
+
error(
|
|
8931
|
+
`Either connection "url" or "host", "database" are required for database connection`
|
|
8932
|
+
)
|
|
8933
|
+
);
|
|
8934
|
+
process.exit(1);
|
|
8735
8935
|
};
|
|
8736
8936
|
}
|
|
8737
8937
|
});
|
|
@@ -8742,154 +8942,77 @@ var init_sqlite = __esm({
|
|
|
8742
8942
|
"src/cli/validations/sqlite.ts"() {
|
|
8743
8943
|
"use strict";
|
|
8744
8944
|
init_lib();
|
|
8745
|
-
|
|
8945
|
+
init_common();
|
|
8946
|
+
init_views();
|
|
8947
|
+
init_global();
|
|
8746
8948
|
sqliteCredentials = unionType([
|
|
8747
8949
|
objectType({
|
|
8748
8950
|
driver: literalType("turso"),
|
|
8749
|
-
url: stringType(),
|
|
8750
|
-
authToken: stringType()
|
|
8951
|
+
url: stringType().min(1),
|
|
8952
|
+
authToken: stringType().min(1).optional()
|
|
8751
8953
|
}),
|
|
8752
8954
|
objectType({
|
|
8753
8955
|
driver: literalType("d1-http"),
|
|
8754
|
-
accountId: stringType(),
|
|
8755
|
-
databaseId: stringType(),
|
|
8756
|
-
token: stringType()
|
|
8956
|
+
accountId: stringType().min(1),
|
|
8957
|
+
databaseId: stringType().min(1),
|
|
8958
|
+
token: stringType().min(1)
|
|
8757
8959
|
}),
|
|
8758
8960
|
objectType({
|
|
8759
|
-
|
|
8961
|
+
driver: undefinedType(),
|
|
8962
|
+
url: stringType().min(1)
|
|
8963
|
+
}).transform((o) => {
|
|
8964
|
+
delete o.driver;
|
|
8965
|
+
return o;
|
|
8760
8966
|
})
|
|
8761
8967
|
]);
|
|
8762
|
-
printConfigConnectionIssues3 = (options) => {
|
|
8763
|
-
|
|
8764
|
-
|
|
8765
|
-
|
|
8766
|
-
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8968
|
+
printConfigConnectionIssues3 = (options, command) => {
|
|
8969
|
+
const parsedDriver = sqliteDriver.safeParse(options.driver);
|
|
8970
|
+
const driver3 = parsedDriver.success ? parsedDriver.data : "";
|
|
8971
|
+
if (driver3 === "expo") {
|
|
8972
|
+
if (command === "migrate") {
|
|
8973
|
+
console.log(
|
|
8974
|
+
error(
|
|
8975
|
+
`You can't use 'migrate' command with Expo SQLite, please follow migration instructions in our docs - https://orm.drizzle.team/docs/get-started-sqlite#expo-sqlite`
|
|
8976
|
+
)
|
|
8977
|
+
);
|
|
8978
|
+
} else if (command === "studio") {
|
|
8979
|
+
console.log(
|
|
8980
|
+
error(
|
|
8981
|
+
`You can't use 'studio' command with Expo SQLite, please use Expo Plugin https://www.npmjs.com/package/expo-drizzle-studio-plugin`
|
|
8982
|
+
)
|
|
8983
|
+
);
|
|
8984
|
+
} else if (command === "pull") {
|
|
8985
|
+
console.log(error("You can't use 'pull' command with Expo SQLite"));
|
|
8986
|
+
} else if (command === "push") {
|
|
8987
|
+
console.log(error("You can't use 'push' command with Expo SQLite"));
|
|
8988
|
+
} else {
|
|
8989
|
+
console.log(error("Unexpected error with expo driver \u{1F914}"));
|
|
8777
8990
|
}
|
|
8991
|
+
process.exit(1);
|
|
8992
|
+
} else if (driver3 === "d1-http") {
|
|
8993
|
+
let text2 = `Please provide required params for D1 HTTP driver:
|
|
8994
|
+
`;
|
|
8995
|
+
console.log(error(text2));
|
|
8996
|
+
console.log(wrapParam("accountId", options.accountId));
|
|
8997
|
+
console.log(wrapParam("databaseId", options.databaseId));
|
|
8998
|
+
console.log(wrapParam("token", options.token));
|
|
8999
|
+
process.exit(1);
|
|
9000
|
+
} else if (driver3 === "turso") {
|
|
9001
|
+
let text2 = `Please provide required params for Turso driver:
|
|
9002
|
+
`;
|
|
9003
|
+
console.log(error(text2));
|
|
9004
|
+
console.log(wrapParam("url", options.url));
|
|
9005
|
+
console.log(wrapParam("authToken", options.authToken));
|
|
9006
|
+
return;
|
|
8778
9007
|
} else {
|
|
8779
|
-
|
|
8780
|
-
}
|
|
8781
|
-
};
|
|
8782
|
-
}
|
|
8783
|
-
});
|
|
8784
|
-
|
|
8785
|
-
// src/schemaValidator.ts
|
|
8786
|
-
var dialect3, commonSquashedSchema, commonSchema;
|
|
8787
|
-
var init_schemaValidator = __esm({
|
|
8788
|
-
"src/schemaValidator.ts"() {
|
|
8789
|
-
"use strict";
|
|
8790
|
-
init_lib();
|
|
8791
|
-
init_mysqlSchema();
|
|
8792
|
-
init_pgSchema();
|
|
8793
|
-
init_sqliteSchema();
|
|
8794
|
-
dialect3 = enumType(["postgresql", "mysql", "sqlite"]);
|
|
8795
|
-
commonSquashedSchema = unionType([
|
|
8796
|
-
pgSchemaSquashed,
|
|
8797
|
-
mysqlSchemaSquashed,
|
|
8798
|
-
SQLiteSchemaSquashed
|
|
8799
|
-
]);
|
|
8800
|
-
commonSchema = unionType([
|
|
8801
|
-
pgSchema,
|
|
8802
|
-
mysqlSchema,
|
|
8803
|
-
sqliteSchema
|
|
8804
|
-
]);
|
|
8805
|
-
}
|
|
8806
|
-
});
|
|
8807
|
-
|
|
8808
|
-
// src/cli/validations/common.ts
|
|
8809
|
-
var assertCollisions, sqliteDriver, postgresDriver, mysqlDriver, driver, configCommonSchema, casing, introspectParams, configIntrospectCliSchema, configGenerateSchema, configPushSchema;
|
|
8810
|
-
var init_common = __esm({
|
|
8811
|
-
"src/cli/validations/common.ts"() {
|
|
8812
|
-
"use strict";
|
|
8813
|
-
init_outputs();
|
|
8814
|
-
init_lib();
|
|
8815
|
-
init_schemaValidator();
|
|
8816
|
-
assertCollisions = (options, command, inputWhitelist = []) => {
|
|
8817
|
-
const { config, ...rest } = options;
|
|
8818
|
-
let atLeastOneParam = false;
|
|
8819
|
-
for (const key of Object.keys(rest)) {
|
|
8820
|
-
if (inputWhitelist.includes(key))
|
|
8821
|
-
continue;
|
|
8822
|
-
atLeastOneParam = true;
|
|
8823
|
-
}
|
|
8824
|
-
if (!atLeastOneParam && typeof config !== "undefined") {
|
|
8825
|
-
return "config";
|
|
9008
|
+
softAssertUnreachable(driver3);
|
|
8826
9009
|
}
|
|
8827
|
-
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
return "config";
|
|
8832
|
-
}
|
|
8833
|
-
console.log(outputs.common.ambiguousParams(command));
|
|
9010
|
+
let text = `Please provide required params:
|
|
9011
|
+
`;
|
|
9012
|
+
console.log(error(text));
|
|
9013
|
+
console.log(wrapParam("url", options.url));
|
|
8834
9014
|
process.exit(1);
|
|
8835
9015
|
};
|
|
8836
|
-
sqliteDriver = unionType([
|
|
8837
|
-
literalType("better-sqlite"),
|
|
8838
|
-
literalType("turso"),
|
|
8839
|
-
literalType("libsql"),
|
|
8840
|
-
literalType("d1"),
|
|
8841
|
-
literalType("d1-http"),
|
|
8842
|
-
literalType("expo")
|
|
8843
|
-
]);
|
|
8844
|
-
postgresDriver = literalType("aws-data-api");
|
|
8845
|
-
mysqlDriver = literalType("mysql2");
|
|
8846
|
-
driver = unionType([sqliteDriver, postgresDriver, mysqlDriver]);
|
|
8847
|
-
configCommonSchema = objectType({
|
|
8848
|
-
dialect: dialect3,
|
|
8849
|
-
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8850
|
-
out: stringType().optional(),
|
|
8851
|
-
breakpoints: booleanType().optional().default(true),
|
|
8852
|
-
driver: driver.optional(),
|
|
8853
|
-
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8854
|
-
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"])
|
|
8855
|
-
});
|
|
8856
|
-
casing = unionType([literalType("camel"), literalType("preserve")]).default(
|
|
8857
|
-
"preserve"
|
|
8858
|
-
);
|
|
8859
|
-
introspectParams = objectType({
|
|
8860
|
-
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8861
|
-
out: stringType().optional().default("./drizzle"),
|
|
8862
|
-
breakpoints: booleanType().default(true),
|
|
8863
|
-
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8864
|
-
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8865
|
-
introspect: objectType({
|
|
8866
|
-
casing
|
|
8867
|
-
}).default({ casing: "camel" })
|
|
8868
|
-
});
|
|
8869
|
-
configIntrospectCliSchema = objectType({
|
|
8870
|
-
schema: unionType([stringType(), stringType().array()]).optional(),
|
|
8871
|
-
out: stringType().optional().default("./drizzle"),
|
|
8872
|
-
breakpoints: booleanType().default(true),
|
|
8873
|
-
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8874
|
-
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8875
|
-
introspectCasing: unionType([literalType("camel"), literalType("preserve")]).default(
|
|
8876
|
-
"camel"
|
|
8877
|
-
)
|
|
8878
|
-
});
|
|
8879
|
-
configGenerateSchema = objectType({
|
|
8880
|
-
schema: unionType([stringType(), stringType().array()]),
|
|
8881
|
-
out: stringType().optional().default("./drizzle"),
|
|
8882
|
-
breakpoints: booleanType().default(true)
|
|
8883
|
-
});
|
|
8884
|
-
configPushSchema = objectType({
|
|
8885
|
-
dialect: dialect3,
|
|
8886
|
-
schema: unionType([stringType(), stringType().array()]),
|
|
8887
|
-
tablesFilter: unionType([stringType(), stringType().array()]).optional(),
|
|
8888
|
-
schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]),
|
|
8889
|
-
verbose: booleanType().default(false),
|
|
8890
|
-
strict: booleanType().default(false),
|
|
8891
|
-
out: stringType().optional()
|
|
8892
|
-
});
|
|
8893
9016
|
}
|
|
8894
9017
|
});
|
|
8895
9018
|
|
|
@@ -8951,7 +9074,7 @@ var init_studio = __esm({
|
|
|
8951
9074
|
init_mysql();
|
|
8952
9075
|
init_sqlite();
|
|
8953
9076
|
init_schemaValidator();
|
|
8954
|
-
|
|
9077
|
+
init_postgres();
|
|
8955
9078
|
credentials = intersectionType(
|
|
8956
9079
|
postgresCredentials,
|
|
8957
9080
|
mysqlCredentials,
|
|
@@ -9105,7 +9228,7 @@ var require_common = __commonJS({
|
|
|
9105
9228
|
function setup(env3) {
|
|
9106
9229
|
createDebug.debug = createDebug;
|
|
9107
9230
|
createDebug.default = createDebug;
|
|
9108
|
-
createDebug.coerce =
|
|
9231
|
+
createDebug.coerce = coerce2;
|
|
9109
9232
|
createDebug.disable = disable;
|
|
9110
9233
|
createDebug.enable = enable;
|
|
9111
9234
|
createDebug.enabled = enabled;
|
|
@@ -9246,7 +9369,7 @@ var require_common = __commonJS({
|
|
|
9246
9369
|
function toNamespace(regexp) {
|
|
9247
9370
|
return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
|
|
9248
9371
|
}
|
|
9249
|
-
function
|
|
9372
|
+
function coerce2(val2) {
|
|
9250
9373
|
if (val2 instanceof Error) {
|
|
9251
9374
|
return val2.stack || val2.message;
|
|
9252
9375
|
}
|
|
@@ -14601,7 +14724,7 @@ var init_utils4 = __esm({
|
|
|
14601
14724
|
import_hanji2 = __toESM(require_hanji());
|
|
14602
14725
|
init_global();
|
|
14603
14726
|
init_mysql();
|
|
14604
|
-
|
|
14727
|
+
init_postgres();
|
|
14605
14728
|
init_sqlite();
|
|
14606
14729
|
init_common();
|
|
14607
14730
|
init_schemaValidator();
|
|
@@ -14777,7 +14900,7 @@ var init_utils4 = __esm({
|
|
|
14777
14900
|
if (dialect7 === "sqlite") {
|
|
14778
14901
|
const parsed = sqliteCredentials.safeParse(config);
|
|
14779
14902
|
if (!parsed.success) {
|
|
14780
|
-
printConfigConnectionIssues3(config);
|
|
14903
|
+
printConfigConnectionIssues3(config, "pull");
|
|
14781
14904
|
process.exit(1);
|
|
14782
14905
|
}
|
|
14783
14906
|
return {
|
|
@@ -14852,7 +14975,7 @@ var init_utils4 = __esm({
|
|
|
14852
14975
|
if (dialect7 === "sqlite") {
|
|
14853
14976
|
const parsed = sqliteCredentials.safeParse(config);
|
|
14854
14977
|
if (!parsed.success) {
|
|
14855
|
-
printConfigConnectionIssues3(config);
|
|
14978
|
+
printConfigConnectionIssues3(config, "pull");
|
|
14856
14979
|
process.exit(1);
|
|
14857
14980
|
}
|
|
14858
14981
|
return {
|
|
@@ -14917,7 +15040,7 @@ var init_utils4 = __esm({
|
|
|
14917
15040
|
if (dialect7 === "sqlite") {
|
|
14918
15041
|
const parsed = sqliteCredentials.safeParse(flattened);
|
|
14919
15042
|
if (!parsed.success) {
|
|
14920
|
-
printConfigConnectionIssues3(flattened);
|
|
15043
|
+
printConfigConnectionIssues3(flattened, "studio");
|
|
14921
15044
|
process.exit(1);
|
|
14922
15045
|
}
|
|
14923
15046
|
const credentials2 = parsed.data;
|
|
@@ -14992,7 +15115,7 @@ var init_utils4 = __esm({
|
|
|
14992
15115
|
if (dialect7 === "sqlite") {
|
|
14993
15116
|
const parsed = sqliteCredentials.safeParse(flattened);
|
|
14994
15117
|
if (!parsed.success) {
|
|
14995
|
-
printConfigConnectionIssues3(flattened);
|
|
15118
|
+
printConfigConnectionIssues3(flattened, "migrate");
|
|
14996
15119
|
process.exit(1);
|
|
14997
15120
|
}
|
|
14998
15121
|
const credentials2 = parsed.data;
|
|
@@ -15053,8 +15176,9 @@ var init_utils4 = __esm({
|
|
|
15053
15176
|
unregister();
|
|
15054
15177
|
const res = configCommonSchema.safeParse(content);
|
|
15055
15178
|
if (!res.success) {
|
|
15056
|
-
|
|
15057
|
-
|
|
15179
|
+
if (!("dialect" in content)) {
|
|
15180
|
+
console.log(error("Please specify 'dialect' param"));
|
|
15181
|
+
}
|
|
15058
15182
|
process.exit(1);
|
|
15059
15183
|
}
|
|
15060
15184
|
return res.data;
|
|
@@ -15165,6 +15289,7 @@ var init_mysqlSerializer = __esm({
|
|
|
15165
15289
|
};
|
|
15166
15290
|
generateMySqlSnapshot = (tables) => {
|
|
15167
15291
|
const result = {};
|
|
15292
|
+
const internal = { tables: {}, indexes: {} };
|
|
15168
15293
|
for (const table4 of tables) {
|
|
15169
15294
|
const {
|
|
15170
15295
|
name: tableName,
|
|
@@ -15315,10 +15440,29 @@ The unique constraint ${source_default.underline.blue(
|
|
|
15315
15440
|
const columns2 = value.config.columns;
|
|
15316
15441
|
const name = value.config.name;
|
|
15317
15442
|
let indexColumns = columns2.map((it) => {
|
|
15443
|
+
var _a;
|
|
15318
15444
|
if ((0, import_drizzle_orm2.is)(it, import_drizzle_orm3.SQL)) {
|
|
15319
|
-
|
|
15445
|
+
const sql2 = dialect4.sqlToQuery(it, "indexes").sql;
|
|
15446
|
+
if (typeof internal.indexes[name] === "undefined") {
|
|
15447
|
+
internal.indexes[name] = {
|
|
15448
|
+
columns: {
|
|
15449
|
+
[sql2]: {
|
|
15450
|
+
isExpression: true
|
|
15451
|
+
}
|
|
15452
|
+
}
|
|
15453
|
+
};
|
|
15454
|
+
} else {
|
|
15455
|
+
if (typeof ((_a = internal.indexes[name]) == null ? void 0 : _a.columns[sql2]) === "undefined") {
|
|
15456
|
+
internal.indexes[name].columns[sql2] = {
|
|
15457
|
+
isExpression: true
|
|
15458
|
+
};
|
|
15459
|
+
} else {
|
|
15460
|
+
internal.indexes[name].columns[sql2].isExpression = true;
|
|
15461
|
+
}
|
|
15462
|
+
}
|
|
15463
|
+
return sql2;
|
|
15320
15464
|
} else {
|
|
15321
|
-
return it.name
|
|
15465
|
+
return `${it.name}`;
|
|
15322
15466
|
}
|
|
15323
15467
|
});
|
|
15324
15468
|
if (value.config.unique) {
|
|
@@ -15385,12 +15529,13 @@ We have encountered a collision between the index name on columns ${source_defau
|
|
|
15385
15529
|
_meta: {
|
|
15386
15530
|
tables: {},
|
|
15387
15531
|
columns: {}
|
|
15388
|
-
}
|
|
15532
|
+
},
|
|
15533
|
+
internal
|
|
15389
15534
|
};
|
|
15390
15535
|
};
|
|
15391
15536
|
fromDatabase = async (db2, inputSchema, tablesFilter = (table4) => true, progressCallback) => {
|
|
15392
15537
|
const result = {};
|
|
15393
|
-
const internals = { tables: {} };
|
|
15538
|
+
const internals = { tables: {}, indexes: {} };
|
|
15394
15539
|
const columns = await db2.query(`select * from information_schema.columns
|
|
15395
15540
|
where table_schema = '${inputSchema}' and table_name != '__drizzle_migrations'
|
|
15396
15541
|
order by table_name, ordinal_position;`);
|
|
@@ -16605,6 +16750,7 @@ var init_sqliteSerializer = __esm({
|
|
|
16605
16750
|
dialect6 = new import_sqlite_core2.SQLiteSyncDialect();
|
|
16606
16751
|
generateSqliteSnapshot = (tables) => {
|
|
16607
16752
|
const result = {};
|
|
16753
|
+
const internal = { indexes: {} };
|
|
16608
16754
|
for (const table4 of tables) {
|
|
16609
16755
|
const columnsObject = {};
|
|
16610
16756
|
const indexesObject = {};
|
|
@@ -16690,8 +16836,27 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
|
|
|
16690
16836
|
const columns2 = value.config.columns;
|
|
16691
16837
|
const name = value.config.name;
|
|
16692
16838
|
let indexColumns = columns2.map((it) => {
|
|
16839
|
+
var _a;
|
|
16693
16840
|
if ((0, import_drizzle_orm7.is)(it, import_drizzle_orm7.SQL)) {
|
|
16694
|
-
|
|
16841
|
+
const sql2 = dialect6.sqlToQuery(it, "indexes").sql;
|
|
16842
|
+
if (typeof internal.indexes[name] === "undefined") {
|
|
16843
|
+
internal.indexes[name] = {
|
|
16844
|
+
columns: {
|
|
16845
|
+
[sql2]: {
|
|
16846
|
+
isExpression: true
|
|
16847
|
+
}
|
|
16848
|
+
}
|
|
16849
|
+
};
|
|
16850
|
+
} else {
|
|
16851
|
+
if (typeof ((_a = internal.indexes[name]) == null ? void 0 : _a.columns[sql2]) === "undefined") {
|
|
16852
|
+
internal.indexes[name].columns[sql2] = {
|
|
16853
|
+
isExpression: true
|
|
16854
|
+
};
|
|
16855
|
+
} else {
|
|
16856
|
+
internal.indexes[name].columns[sql2].isExpression = true;
|
|
16857
|
+
}
|
|
16858
|
+
}
|
|
16859
|
+
return sql2;
|
|
16695
16860
|
} else {
|
|
16696
16861
|
return it.name;
|
|
16697
16862
|
}
|
|
@@ -16765,7 +16930,8 @@ The unique constraint ${source_default.underline.blue(
|
|
|
16765
16930
|
_meta: {
|
|
16766
16931
|
tables: {},
|
|
16767
16932
|
columns: {}
|
|
16768
|
-
}
|
|
16933
|
+
},
|
|
16934
|
+
internal
|
|
16769
16935
|
};
|
|
16770
16936
|
};
|
|
16771
16937
|
fromDatabase3 = async (db2, tablesFilter = (table4) => true, progressCallback) => {
|
|
@@ -17268,7 +17434,14 @@ var init_sqlgenerator = __esm({
|
|
|
17268
17434
|
return statement.type === "create_table" && dialect7 === "mysql";
|
|
17269
17435
|
}
|
|
17270
17436
|
convert(st) {
|
|
17271
|
-
const {
|
|
17437
|
+
const {
|
|
17438
|
+
tableName,
|
|
17439
|
+
columns,
|
|
17440
|
+
schema: schema5,
|
|
17441
|
+
compositePKs,
|
|
17442
|
+
uniqueConstraints,
|
|
17443
|
+
internals
|
|
17444
|
+
} = st;
|
|
17272
17445
|
let statement = "";
|
|
17273
17446
|
statement += `CREATE TABLE \`${tableName}\` (
|
|
17274
17447
|
`;
|
|
@@ -17291,7 +17464,11 @@ var init_sqlgenerator = __esm({
|
|
|
17291
17464
|
for (const uniqueConstraint4 of uniqueConstraints) {
|
|
17292
17465
|
statement += ",\n";
|
|
17293
17466
|
const unsquashedUnique = MySqlSquasher.unsquashUnique(uniqueConstraint4);
|
|
17294
|
-
|
|
17467
|
+
const uniqueString = unsquashedUnique.columns.map((it) => {
|
|
17468
|
+
var _a, _b;
|
|
17469
|
+
return (internals == null ? void 0 : internals.indexes) ? ((_b = (_a = internals == null ? void 0 : internals.indexes[unsquashedUnique.name]) == null ? void 0 : _a.columns[it]) == null ? void 0 : _b.isExpression) ? it : `\`${it}\`` : `\`${it}\``;
|
|
17470
|
+
}).join(",");
|
|
17471
|
+
statement += ` CONSTRAINT \`${unsquashedUnique.name}\` UNIQUE(${uniqueString})`;
|
|
17295
17472
|
}
|
|
17296
17473
|
}
|
|
17297
17474
|
statement += `
|
|
@@ -18220,8 +18397,11 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo
|
|
|
18220
18397
|
statement.data
|
|
18221
18398
|
);
|
|
18222
18399
|
const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX";
|
|
18223
|
-
const
|
|
18224
|
-
|
|
18400
|
+
const uniqueString = columns.map((it) => {
|
|
18401
|
+
var _a, _b, _c, _d;
|
|
18402
|
+
return ((_a = statement.internal) == null ? void 0 : _a.indexes) ? ((_d = (_c = (_b = statement.internal) == null ? void 0 : _b.indexes[name]) == null ? void 0 : _c.columns[it]) == null ? void 0 : _d.isExpression) ? it : `\`${it}\`` : `\`${it}\``;
|
|
18403
|
+
}).join(",");
|
|
18404
|
+
return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString});`;
|
|
18225
18405
|
}
|
|
18226
18406
|
};
|
|
18227
18407
|
CreateSqliteIndexConvertor = class extends Convertor {
|
|
@@ -18234,8 +18414,11 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo
|
|
|
18234
18414
|
);
|
|
18235
18415
|
const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX";
|
|
18236
18416
|
const whereStatement = where ? ` WHERE ${where}` : "";
|
|
18237
|
-
const
|
|
18238
|
-
|
|
18417
|
+
const uniqueString = columns.map((it) => {
|
|
18418
|
+
var _a, _b, _c, _d;
|
|
18419
|
+
return ((_a = statement.internal) == null ? void 0 : _a.indexes) ? ((_d = (_c = (_b = statement.internal) == null ? void 0 : _b.indexes[name]) == null ? void 0 : _c.columns[it]) == null ? void 0 : _d.isExpression) ? it : `\`${it}\`` : `\`${it}\``;
|
|
18420
|
+
}).join(",");
|
|
18421
|
+
return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString})${whereStatement};`;
|
|
18239
18422
|
}
|
|
18240
18423
|
};
|
|
18241
18424
|
PgDropIndexConvertor = class extends Convertor {
|
|
@@ -18883,7 +19066,7 @@ var init_jsonStatements = __esm({
|
|
|
18883
19066
|
uniqueConstraints: Object.values(uniqueConstraints)
|
|
18884
19067
|
};
|
|
18885
19068
|
};
|
|
18886
|
-
prepareMySqlCreateTableJson = (table4, json2) => {
|
|
19069
|
+
prepareMySqlCreateTableJson = (table4, json2, internals) => {
|
|
18887
19070
|
const { name, schema: schema5, columns, compositePrimaryKeys, uniqueConstraints } = table4;
|
|
18888
19071
|
return {
|
|
18889
19072
|
type: "create_table",
|
|
@@ -18892,7 +19075,8 @@ var init_jsonStatements = __esm({
|
|
|
18892
19075
|
columns: Object.values(columns),
|
|
18893
19076
|
compositePKs: Object.values(compositePrimaryKeys),
|
|
18894
19077
|
compositePkName: Object.values(compositePrimaryKeys).length > 0 ? json2.tables[name].compositePrimaryKeys[MySqlSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name].name : "",
|
|
18895
|
-
uniqueConstraints: Object.values(uniqueConstraints)
|
|
19078
|
+
uniqueConstraints: Object.values(uniqueConstraints),
|
|
19079
|
+
internals
|
|
18896
19080
|
};
|
|
18897
19081
|
};
|
|
18898
19082
|
prepareSQLiteCreateTable = (table4) => {
|
|
@@ -19649,13 +19833,14 @@ var init_jsonStatements = __esm({
|
|
|
19649
19833
|
};
|
|
19650
19834
|
});
|
|
19651
19835
|
};
|
|
19652
|
-
prepareCreateIndexesJson = (tableName, schema5, indexes) => {
|
|
19836
|
+
prepareCreateIndexesJson = (tableName, schema5, indexes, internal) => {
|
|
19653
19837
|
return Object.values(indexes).map((indexData) => {
|
|
19654
19838
|
return {
|
|
19655
19839
|
type: "create_index",
|
|
19656
19840
|
tableName,
|
|
19657
19841
|
data: indexData,
|
|
19658
|
-
schema: schema5
|
|
19842
|
+
schema: schema5,
|
|
19843
|
+
internal
|
|
19659
19844
|
};
|
|
19660
19845
|
});
|
|
19661
19846
|
};
|
|
@@ -20560,7 +20745,12 @@ var init_snapshotsDiffer = __esm({
|
|
|
20560
20745
|
const typedResult = diffResultSchemeMysql.parse(diffResult);
|
|
20561
20746
|
const jsonStatements = [];
|
|
20562
20747
|
const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
|
|
20563
|
-
return prepareCreateIndexesJson(
|
|
20748
|
+
return prepareCreateIndexesJson(
|
|
20749
|
+
it.name,
|
|
20750
|
+
it.schema,
|
|
20751
|
+
it.indexes,
|
|
20752
|
+
curFull.internal
|
|
20753
|
+
);
|
|
20564
20754
|
}).flat();
|
|
20565
20755
|
const jsonDropTables = deletedTables.map((it) => {
|
|
20566
20756
|
return prepareDropTableJson(it);
|
|
@@ -20659,7 +20849,8 @@ var init_snapshotsDiffer = __esm({
|
|
|
20659
20849
|
return prepareCreateIndexesJson(
|
|
20660
20850
|
it.name,
|
|
20661
20851
|
it.schema,
|
|
20662
|
-
it.addedIndexes || {}
|
|
20852
|
+
it.addedIndexes || {},
|
|
20853
|
+
curFull.internal
|
|
20663
20854
|
);
|
|
20664
20855
|
}).flat();
|
|
20665
20856
|
const jsonDropIndexesForAllAlteredTables = alteredTables.map((it) => {
|
|
@@ -20719,7 +20910,11 @@ var init_snapshotsDiffer = __esm({
|
|
|
20719
20910
|
(t2) => t2.type === "delete_reference"
|
|
20720
20911
|
);
|
|
20721
20912
|
const jsonMySqlCreateTables = createdTables.map((it) => {
|
|
20722
|
-
return prepareMySqlCreateTableJson(
|
|
20913
|
+
return prepareMySqlCreateTableJson(
|
|
20914
|
+
it,
|
|
20915
|
+
curFull,
|
|
20916
|
+
curFull.internal
|
|
20917
|
+
);
|
|
20723
20918
|
});
|
|
20724
20919
|
jsonStatements.push(...jsonMySqlCreateTables);
|
|
20725
20920
|
jsonStatements.push(...jsonDropTables);
|
|
@@ -20759,7 +20954,7 @@ var init_snapshotsDiffer = __esm({
|
|
|
20759
20954
|
_meta
|
|
20760
20955
|
};
|
|
20761
20956
|
};
|
|
20762
|
-
applySqliteSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2) => {
|
|
20957
|
+
applySqliteSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, prevFull, curFull) => {
|
|
20763
20958
|
const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables);
|
|
20764
20959
|
const {
|
|
20765
20960
|
created: createdTables,
|
|
@@ -20839,7 +21034,12 @@ var init_snapshotsDiffer = __esm({
|
|
|
20839
21034
|
return prepareSQLiteCreateTable(it);
|
|
20840
21035
|
});
|
|
20841
21036
|
const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
|
|
20842
|
-
return prepareCreateIndexesJson(
|
|
21037
|
+
return prepareCreateIndexesJson(
|
|
21038
|
+
it.name,
|
|
21039
|
+
it.schema,
|
|
21040
|
+
it.indexes,
|
|
21041
|
+
curFull.internal
|
|
21042
|
+
);
|
|
20843
21043
|
}).flat();
|
|
20844
21044
|
const jsonDropTables = deletedTables.map((it) => {
|
|
20845
21045
|
return prepareDropTableJson(it);
|
|
@@ -20941,7 +21141,8 @@ var init_snapshotsDiffer = __esm({
|
|
|
20941
21141
|
return prepareCreateIndexesJson(
|
|
20942
21142
|
it.name,
|
|
20943
21143
|
it.schema,
|
|
20944
|
-
it.addedIndexes || {}
|
|
21144
|
+
it.addedIndexes || {},
|
|
21145
|
+
curFull.internal
|
|
20945
21146
|
);
|
|
20946
21147
|
}).flat();
|
|
20947
21148
|
const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => {
|
|
@@ -22632,7 +22833,9 @@ var init_migrate = __esm({
|
|
|
22632
22833
|
squashedPrev,
|
|
22633
22834
|
squashedCur,
|
|
22634
22835
|
tablesResolver,
|
|
22635
|
-
columnsResolver
|
|
22836
|
+
columnsResolver,
|
|
22837
|
+
validatedPrev,
|
|
22838
|
+
validatedCur
|
|
22636
22839
|
);
|
|
22637
22840
|
writeResult({
|
|
22638
22841
|
cur,
|
|
@@ -22658,7 +22861,9 @@ var init_migrate = __esm({
|
|
|
22658
22861
|
squashedPrev,
|
|
22659
22862
|
squashedCur,
|
|
22660
22863
|
tablesResolver,
|
|
22661
|
-
columnsResolver
|
|
22864
|
+
columnsResolver,
|
|
22865
|
+
validatedPrev,
|
|
22866
|
+
validatedCur
|
|
22662
22867
|
);
|
|
22663
22868
|
return {
|
|
22664
22869
|
sqlStatements,
|
|
@@ -24928,14 +25133,14 @@ var require_to_regex_range = __commonJS({
|
|
|
24928
25133
|
}
|
|
24929
25134
|
return tokens;
|
|
24930
25135
|
}
|
|
24931
|
-
function filterPatterns(arr, comparison, prefix,
|
|
25136
|
+
function filterPatterns(arr, comparison, prefix, intersection, options) {
|
|
24932
25137
|
let result = [];
|
|
24933
25138
|
for (let ele of arr) {
|
|
24934
25139
|
let { string } = ele;
|
|
24935
|
-
if (!
|
|
25140
|
+
if (!intersection && !contains(comparison, "string", string)) {
|
|
24936
25141
|
result.push(prefix + string);
|
|
24937
25142
|
}
|
|
24938
|
-
if (
|
|
25143
|
+
if (intersection && contains(comparison, "string", string)) {
|
|
24939
25144
|
result.push(prefix + string);
|
|
24940
25145
|
}
|
|
24941
25146
|
}
|
|
@@ -111934,11 +112139,11 @@ var init_connections = __esm({
|
|
|
111934
112139
|
);
|
|
111935
112140
|
process.exit(1);
|
|
111936
112141
|
};
|
|
111937
|
-
prepareSqliteParams = (params,
|
|
112142
|
+
prepareSqliteParams = (params, driver3) => {
|
|
111938
112143
|
return params.map((param) => {
|
|
111939
112144
|
if (param && typeof param === "object" && "type" in param && "value" in param && param.type === "binary") {
|
|
111940
112145
|
const value = typeof param.value === "object" ? JSON.stringify(param.value) : param.value;
|
|
111941
|
-
if (
|
|
112146
|
+
if (driver3 === "d1-http") {
|
|
111942
112147
|
return value;
|
|
111943
112148
|
}
|
|
111944
112149
|
return Buffer.from(value);
|
|
@@ -111948,8 +112153,8 @@ var init_connections = __esm({
|
|
|
111948
112153
|
};
|
|
111949
112154
|
connectToSQLite = async (credentials2) => {
|
|
111950
112155
|
if ("driver" in credentials2) {
|
|
111951
|
-
const { driver:
|
|
111952
|
-
if (
|
|
112156
|
+
const { driver: driver3 } = credentials2;
|
|
112157
|
+
if (driver3 === "turso") {
|
|
111953
112158
|
assertPackages("@libsql/client");
|
|
111954
112159
|
const { createClient: createClient2 } = await import("@libsql/client");
|
|
111955
112160
|
const { drizzle } = await import("drizzle-orm/libsql");
|
|
@@ -111986,7 +112191,7 @@ var init_connections = __esm({
|
|
|
111986
112191
|
}
|
|
111987
112192
|
};
|
|
111988
112193
|
return { ...db2, ...proxy, migrate: migrateFn };
|
|
111989
|
-
} else if (
|
|
112194
|
+
} else if (driver3 === "d1-http") {
|
|
111990
112195
|
const { drizzle } = await import("drizzle-orm/sqlite-proxy");
|
|
111991
112196
|
const { migrate } = await import("drizzle-orm/sqlite-proxy/migrator");
|
|
111992
112197
|
const remoteCallback = async (sql2, params, method) => {
|
|
@@ -112046,7 +112251,7 @@ var init_connections = __esm({
|
|
|
112046
112251
|
};
|
|
112047
112252
|
return { ...db2, ...proxy, migrate: migrateFn };
|
|
112048
112253
|
} else {
|
|
112049
|
-
assertUnreachable(
|
|
112254
|
+
assertUnreachable(driver3);
|
|
112050
112255
|
}
|
|
112051
112256
|
}
|
|
112052
112257
|
if (await checkPackage("@libsql/client")) {
|
|
@@ -116820,7 +117025,9 @@ var init_introspect = __esm({
|
|
|
116820
117025
|
squashSqliteScheme(drySQLite),
|
|
116821
117026
|
squashSqliteScheme(schema5),
|
|
116822
117027
|
tablesResolver,
|
|
116823
|
-
columnsResolver
|
|
117028
|
+
columnsResolver,
|
|
117029
|
+
drySQLite,
|
|
117030
|
+
schema5
|
|
116824
117031
|
);
|
|
116825
117032
|
writeResult({
|
|
116826
117033
|
cur: schema5,
|
|
@@ -120347,13 +120554,13 @@ var init_studio2 = __esm({
|
|
|
120347
120554
|
const customDefaults = getCustomDefaults(sqliteSchema2);
|
|
120348
120555
|
let dbUrl;
|
|
120349
120556
|
if ("driver" in credentials2) {
|
|
120350
|
-
const { driver:
|
|
120351
|
-
if (
|
|
120557
|
+
const { driver: driver3 } = credentials2;
|
|
120558
|
+
if (driver3 === "d1-http") {
|
|
120352
120559
|
dbUrl = `d1-http://${credentials2.accountId}/${credentials2.databaseId}/${credentials2.token}`;
|
|
120353
|
-
} else if (
|
|
120560
|
+
} else if (driver3 === "turso") {
|
|
120354
120561
|
dbUrl = `turso://${credentials2.url}/${credentials2.authToken}`;
|
|
120355
120562
|
} else {
|
|
120356
|
-
assertUnreachable(
|
|
120563
|
+
assertUnreachable(driver3);
|
|
120357
120564
|
}
|
|
120358
120565
|
} else {
|
|
120359
120566
|
dbUrl = credentials2.url;
|
|
@@ -120465,7 +120672,7 @@ var init_studio2 = __esm({
|
|
|
120465
120672
|
};
|
|
120466
120673
|
prepareServer = async ({
|
|
120467
120674
|
dialect: dialect7,
|
|
120468
|
-
driver:
|
|
120675
|
+
driver: driver3,
|
|
120469
120676
|
proxy,
|
|
120470
120677
|
customDefaults,
|
|
120471
120678
|
schema: drizzleSchema,
|
|
@@ -120515,7 +120722,7 @@ var init_studio2 = __esm({
|
|
|
120515
120722
|
return c.json({
|
|
120516
120723
|
version: "6",
|
|
120517
120724
|
dialect: dialect7,
|
|
120518
|
-
driver:
|
|
120725
|
+
driver: driver3,
|
|
120519
120726
|
schemaFiles,
|
|
120520
120727
|
customDefaults: preparedDefaults,
|
|
120521
120728
|
relations: extractRelations(relationsConfig),
|
|
@@ -121969,7 +122176,10 @@ var migrateCommand = new import_commander.Command("migrate").option(
|
|
|
121969
122176
|
var pushCommand = new import_commander.Command("push").option(
|
|
121970
122177
|
"--config <config>",
|
|
121971
122178
|
"Path to a config.json file, drizzle.config.ts by default"
|
|
121972
|
-
).option("--dialect <dialect>", "Database dialect").option("--schema <schema...>", "Path to a schema file or folder").option("--tablesFilter", `Table name filters`).option("--schemaFilters", `Schema name filters`).option(
|
|
122179
|
+
).option("--dialect <dialect>", "Database dialect").option("--schema <schema...>", "Path to a schema file or folder").option("--tablesFilter", `Table name filters`).option("--schemaFilters", `Schema name filters`).option(
|
|
122180
|
+
"--extensionsFilters",
|
|
122181
|
+
`Database extensions internal database filters`
|
|
122182
|
+
).option("--url <url>", "Database connection URL").option("--host <host>", "Database host").option("--port <port>", "Database port").option("--user <user>", "Database user").option("--password <password>", "Database password").option("--database <database>", "Database name").option("--ssl <ssl>", "ssl mode").option("--auth-token <authToken>", "Database auth token [Turso]").option("--driver <driver>", "Driver used for querying the database").option("--verbose", "Print all statements for each push").option("--strict", "Always ask for confirmation").action(async (options) => {
|
|
121973
122183
|
await printVersions();
|
|
121974
122184
|
await assertPackages("drizzle-orm");
|
|
121975
122185
|
await assertOrmCoreVersion();
|
|
@@ -122052,7 +122262,10 @@ var upCommand = new import_commander.Command("up").option("--config <config>", `
|
|
|
122052
122262
|
var pullCommand = new import_commander.Command("introspect").option("--config <config>", `Config path [default=drizzle.config.ts]`).option("--out <out>", `Migrations folder`).option("--dialect <dialect>", "Database dialect").option("--breakpoints", `Prepare SQL statements with breakpoints`).option(
|
|
122053
122263
|
"--introspect-casing <introspectCasing>",
|
|
122054
122264
|
"Column object keys naming strategy"
|
|
122055
|
-
).option("--tablesFilter", `Table name filters`).option(
|
|
122265
|
+
).option("--tablesFilter", `Table name filters`).option(
|
|
122266
|
+
"--extensionsFilters",
|
|
122267
|
+
`Database extensions internal database filters`
|
|
122268
|
+
).option("--schemaFilter", `Schema name filters`).option("--url <url>", "Database connection URL").option("--host <host>", "Database host").option("--port <port>", "Database port").option("--user <user>", "Database user").option("--password <password>", "Database password").option("--database <database>", "Database database name").option("--ssl <ssl>", "Database ssl").option("--auth-token <authToken>", "Database auth token [Turso]").option("--driver <driver>", "Driver used for querying the database").action(async (options) => {
|
|
122056
122269
|
await printVersions();
|
|
122057
122270
|
await assertPackages("drizzle-orm");
|
|
122058
122271
|
await assertOrmCoreVersion();
|