drizzle-kit 1.0.0-beta.3-36e9b9e → 1.0.0-beta.3-d4ff358
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-mysql.js +129 -28
- package/api-mysql.mjs +129 -28
- package/api-postgres.js +165 -56
- package/api-postgres.mjs +165 -56
- package/api-sqlite.js +129 -28
- package/api-sqlite.mjs +129 -28
- package/bin.cjs +274 -94
- package/index.d.mts +6 -1
- package/index.d.ts +6 -1
- package/package.json +3 -1
package/api-mysql.js
CHANGED
|
@@ -17324,7 +17324,8 @@ var init_schemaValidator = __esm({
|
|
|
17324
17324
|
"singlestore",
|
|
17325
17325
|
"gel",
|
|
17326
17326
|
"mssql",
|
|
17327
|
-
"cockroach"
|
|
17327
|
+
"cockroach",
|
|
17328
|
+
"duckdb"
|
|
17328
17329
|
];
|
|
17329
17330
|
dialect3 = enumType(dialects);
|
|
17330
17331
|
}
|
|
@@ -139534,6 +139535,7 @@ __export(connections_exports, {
|
|
|
139534
139535
|
connectToSQLite: () => connectToSQLite,
|
|
139535
139536
|
connectToSingleStore: () => connectToSingleStore,
|
|
139536
139537
|
prepareCockroach: () => prepareCockroach,
|
|
139538
|
+
prepareDuckDb: () => prepareDuckDb,
|
|
139537
139539
|
prepareGelDB: () => prepareGelDB,
|
|
139538
139540
|
preparePostgresDB: () => preparePostgresDB
|
|
139539
139541
|
});
|
|
@@ -139550,7 +139552,7 @@ function parseMssqlUrl(url) {
|
|
|
139550
139552
|
}
|
|
139551
139553
|
};
|
|
139552
139554
|
}
|
|
139553
|
-
var import_net, ms, normalisePGliteUrl, preparePostgresDB, prepareCockroach, prepareGelDB, parseSingleStoreCredentials, connectToSingleStore, parseMysqlCredentials, connectToMySQL, parseMssqlCredentials, connectToMsSQL, prepareSqliteParams, preparePGliteParams, connectToSQLite, connectToLibSQL;
|
|
139555
|
+
var import_net, ms, normalisePGliteUrl, preparePostgresDB, prepareDuckDb, prepareCockroach, prepareGelDB, parseSingleStoreCredentials, connectToSingleStore, parseMysqlCredentials, connectToMySQL, parseMssqlCredentials, connectToMsSQL, prepareSqliteParams, preparePGliteParams, connectToSQLite, connectToLibSQL;
|
|
139554
139556
|
var init_connections = __esm({
|
|
139555
139557
|
"src/cli/connections.ts"() {
|
|
139556
139558
|
"use strict";
|
|
@@ -139686,7 +139688,13 @@ var init_connections = __esm({
|
|
|
139686
139688
|
}
|
|
139687
139689
|
return results;
|
|
139688
139690
|
};
|
|
139689
|
-
return {
|
|
139691
|
+
return {
|
|
139692
|
+
packageName: "pglite",
|
|
139693
|
+
query,
|
|
139694
|
+
proxy,
|
|
139695
|
+
transactionProxy,
|
|
139696
|
+
migrate: migrateFn
|
|
139697
|
+
};
|
|
139690
139698
|
}
|
|
139691
139699
|
assertUnreachable(driver2);
|
|
139692
139700
|
}
|
|
@@ -139927,7 +139935,13 @@ var init_connections = __esm({
|
|
|
139927
139935
|
}
|
|
139928
139936
|
return results;
|
|
139929
139937
|
};
|
|
139930
|
-
return {
|
|
139938
|
+
return {
|
|
139939
|
+
packageName: "postgres",
|
|
139940
|
+
query,
|
|
139941
|
+
proxy,
|
|
139942
|
+
transactionProxy,
|
|
139943
|
+
migrate: migrateFn
|
|
139944
|
+
};
|
|
139931
139945
|
}
|
|
139932
139946
|
if (await checkPackage("@vercel/postgres")) {
|
|
139933
139947
|
console.log(
|
|
@@ -140008,7 +140022,13 @@ var init_connections = __esm({
|
|
|
140008
140022
|
}
|
|
140009
140023
|
return results;
|
|
140010
140024
|
};
|
|
140011
|
-
return {
|
|
140025
|
+
return {
|
|
140026
|
+
packageName: "@vercel/postgres",
|
|
140027
|
+
query,
|
|
140028
|
+
proxy,
|
|
140029
|
+
transactionProxy,
|
|
140030
|
+
migrate: migrateFn
|
|
140031
|
+
};
|
|
140012
140032
|
}
|
|
140013
140033
|
if (await checkPackage("@neondatabase/serverless")) {
|
|
140014
140034
|
console.log(
|
|
@@ -140021,7 +140041,11 @@ var init_connections = __esm({
|
|
|
140021
140041
|
"'@neondatabase/serverless' can only connect to remote Neon/Vercel Postgres/Supabase instances through a websocket"
|
|
140022
140042
|
)
|
|
140023
140043
|
);
|
|
140024
|
-
const {
|
|
140044
|
+
const {
|
|
140045
|
+
Pool,
|
|
140046
|
+
neonConfig,
|
|
140047
|
+
types: pgTypes
|
|
140048
|
+
} = require("@neondatabase/serverless");
|
|
140025
140049
|
const { drizzle } = require("drizzle-orm/neon-serverless");
|
|
140026
140050
|
const { migrate } = require("drizzle-orm/neon-serverless/migrator");
|
|
140027
140051
|
const ssl = "ssl" in credentials ? credentials.ssl === "prefer" || credentials.ssl === "require" || credentials.ssl === "allow" ? { rejectUnauthorized: false } : credentials.ssl === "verify-full" ? {} : credentials.ssl : {};
|
|
@@ -140091,7 +140115,13 @@ var init_connections = __esm({
|
|
|
140091
140115
|
}
|
|
140092
140116
|
return results;
|
|
140093
140117
|
};
|
|
140094
|
-
return {
|
|
140118
|
+
return {
|
|
140119
|
+
packageName: "@neondatabase/serverless",
|
|
140120
|
+
query,
|
|
140121
|
+
proxy,
|
|
140122
|
+
transactionProxy,
|
|
140123
|
+
migrate: migrateFn
|
|
140124
|
+
};
|
|
140095
140125
|
}
|
|
140096
140126
|
if (await checkPackage("bun")) {
|
|
140097
140127
|
console.log(withStyle.info(`Using 'bun' driver for database querying`));
|
|
@@ -140142,6 +140172,54 @@ var init_connections = __esm({
|
|
|
140142
140172
|
console.warn("For the 'bun' driver, run your script using: bun --bun");
|
|
140143
140173
|
process.exit(1);
|
|
140144
140174
|
};
|
|
140175
|
+
prepareDuckDb = async (credentials) => {
|
|
140176
|
+
if (await checkPackage("@duckdb/node-api")) {
|
|
140177
|
+
console.log(
|
|
140178
|
+
withStyle.info(`Using '@duckdb/node-api' driver for database querying`)
|
|
140179
|
+
);
|
|
140180
|
+
const { DuckDBInstance } = require("@duckdb/node-api");
|
|
140181
|
+
const instance = await DuckDBInstance.create(credentials.url);
|
|
140182
|
+
const client = await instance.connect();
|
|
140183
|
+
const query = async (sql, params = []) => {
|
|
140184
|
+
const result2 = await client.run(sql, params);
|
|
140185
|
+
const rows = await result2.getRowObjectsJson();
|
|
140186
|
+
return rows;
|
|
140187
|
+
};
|
|
140188
|
+
const proxy = async (params) => {
|
|
140189
|
+
const result2 = await client.run(params.sql, params.params);
|
|
140190
|
+
return params.mode === "array" ? await result2.getRowsJson() : await result2.getRowObjectsJson();
|
|
140191
|
+
};
|
|
140192
|
+
const transactionProxy = async (queries) => {
|
|
140193
|
+
const results = [];
|
|
140194
|
+
try {
|
|
140195
|
+
await client.run("BEGIN");
|
|
140196
|
+
for (const query2 of queries) {
|
|
140197
|
+
const result2 = await client.run(query2.sql);
|
|
140198
|
+
results.push(await result2.getRowObjectsJson());
|
|
140199
|
+
}
|
|
140200
|
+
await client.run("COMMIT");
|
|
140201
|
+
} catch (error3) {
|
|
140202
|
+
await client.run("ROLLBACK");
|
|
140203
|
+
results.push(error3);
|
|
140204
|
+
}
|
|
140205
|
+
return results;
|
|
140206
|
+
};
|
|
140207
|
+
return {
|
|
140208
|
+
packageName: "@duckdb/node-api",
|
|
140209
|
+
query,
|
|
140210
|
+
proxy,
|
|
140211
|
+
transactionProxy,
|
|
140212
|
+
migrate: () => {
|
|
140213
|
+
throw new Error("DuckDB does not support migrations");
|
|
140214
|
+
}
|
|
140215
|
+
};
|
|
140216
|
+
}
|
|
140217
|
+
console.error(
|
|
140218
|
+
// "To connect to DuckDb database - please install either of 'duckdb', '@duckdb/node-api' drivers",
|
|
140219
|
+
"To connect to DuckDb database - please install '@duckdb/node-api' driver"
|
|
140220
|
+
);
|
|
140221
|
+
process.exit(1);
|
|
140222
|
+
};
|
|
140145
140223
|
prepareCockroach = async (credentials) => {
|
|
140146
140224
|
if (await checkPackage("pg")) {
|
|
140147
140225
|
const { default: pg } = require("pg");
|
|
@@ -140194,9 +140272,7 @@ var init_connections = __esm({
|
|
|
140194
140272
|
};
|
|
140195
140273
|
return { query, proxy, migrate: migrateFn };
|
|
140196
140274
|
}
|
|
140197
|
-
console.error(
|
|
140198
|
-
"To connect to Cockroach - please install 'pg' package"
|
|
140199
|
-
);
|
|
140275
|
+
console.error("To connect to Cockroach - please install 'pg' package");
|
|
140200
140276
|
process.exit(1);
|
|
140201
140277
|
};
|
|
140202
140278
|
prepareGelDB = async (credentials) => {
|
|
@@ -140255,9 +140331,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140255
140331
|
};
|
|
140256
140332
|
return { packageName: "gel", query, proxy, transactionProxy };
|
|
140257
140333
|
}
|
|
140258
|
-
console.error(
|
|
140259
|
-
"To connect to gel database - please install 'edgedb' driver"
|
|
140260
|
-
);
|
|
140334
|
+
console.error("To connect to gel database - please install 'edgedb' driver");
|
|
140261
140335
|
process.exit(1);
|
|
140262
140336
|
};
|
|
140263
140337
|
parseSingleStoreCredentials = (credentials) => {
|
|
@@ -140709,9 +140783,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140709
140783
|
migrate: migrateFn
|
|
140710
140784
|
};
|
|
140711
140785
|
}
|
|
140712
|
-
console.error(
|
|
140713
|
-
"To connect to MsSQL database - please install 'mssql' driver"
|
|
140714
|
-
);
|
|
140786
|
+
console.error("To connect to MsSQL database - please install 'mssql' driver");
|
|
140715
140787
|
process.exit(1);
|
|
140716
140788
|
};
|
|
140717
140789
|
prepareSqliteParams = (params, driver2) => {
|
|
@@ -140816,7 +140888,10 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140816
140888
|
await remoteCallback(query2, [], "run");
|
|
140817
140889
|
};
|
|
140818
140890
|
const proxy = async (params) => {
|
|
140819
|
-
const preparedParams = prepareSqliteParams(
|
|
140891
|
+
const preparedParams = prepareSqliteParams(
|
|
140892
|
+
params.params || [],
|
|
140893
|
+
"d1-http"
|
|
140894
|
+
);
|
|
140820
140895
|
const result2 = await remoteCallback(
|
|
140821
140896
|
params.sql,
|
|
140822
140897
|
preparedParams,
|
|
@@ -141041,17 +141116,19 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141041
141116
|
};
|
|
141042
141117
|
const transactionProxy = async (queries) => {
|
|
141043
141118
|
const results = [];
|
|
141044
|
-
const tx = sqlite.transaction(
|
|
141045
|
-
|
|
141046
|
-
|
|
141047
|
-
|
|
141048
|
-
|
|
141049
|
-
|
|
141050
|
-
|
|
141119
|
+
const tx = sqlite.transaction(
|
|
141120
|
+
(queries2) => {
|
|
141121
|
+
for (const query of queries2) {
|
|
141122
|
+
let result2 = [];
|
|
141123
|
+
if (query.method === "values" || query.method === "get" || query.method === "all") {
|
|
141124
|
+
result2 = sqlite.prepare(query.sql).all();
|
|
141125
|
+
} else {
|
|
141126
|
+
sqlite.prepare(query.sql).run();
|
|
141127
|
+
}
|
|
141128
|
+
results.push(result2);
|
|
141051
141129
|
}
|
|
141052
|
-
results.push(result2);
|
|
141053
141130
|
}
|
|
141054
|
-
|
|
141131
|
+
);
|
|
141055
141132
|
try {
|
|
141056
141133
|
tx(queries);
|
|
141057
141134
|
} catch (error3) {
|
|
@@ -141059,7 +141136,13 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141059
141136
|
}
|
|
141060
141137
|
return results;
|
|
141061
141138
|
};
|
|
141062
|
-
return {
|
|
141139
|
+
return {
|
|
141140
|
+
...db,
|
|
141141
|
+
packageName: "better-sqlite3",
|
|
141142
|
+
proxy,
|
|
141143
|
+
transactionProxy,
|
|
141144
|
+
migrate: migrateFn
|
|
141145
|
+
};
|
|
141063
141146
|
}
|
|
141064
141147
|
if (await checkPackage("bun")) {
|
|
141065
141148
|
console.log(withStyle.info(`Using 'bun' driver for database querying`));
|
|
@@ -141189,6 +141272,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141189
141272
|
// src/cli/commands/studio.ts
|
|
141190
141273
|
var studio_exports = {};
|
|
141191
141274
|
__export(studio_exports, {
|
|
141275
|
+
drizzleForDuckDb: () => drizzleForDuckDb,
|
|
141192
141276
|
drizzleForLibSQL: () => drizzleForLibSQL,
|
|
141193
141277
|
drizzleForMySQL: () => drizzleForMySQL,
|
|
141194
141278
|
drizzleForPostgres: () => drizzleForPostgres,
|
|
@@ -141202,7 +141286,7 @@ __export(studio_exports, {
|
|
|
141202
141286
|
prepareServer: () => prepareServer,
|
|
141203
141287
|
prepareSingleStoreSchema: () => prepareSingleStoreSchema
|
|
141204
141288
|
});
|
|
141205
|
-
var import_crypto9, import_drizzle_orm, import_relations, import_mssql_core2, import_mysql_core2, import_pg_core2, import_singlestore_core, import_sqlite_core2, import_fs4, import_node_https2, preparePgSchema, prepareMySqlSchema, prepareMsSqlSchema, prepareSQLiteSchema, prepareSingleStoreSchema, getCustomDefaults, drizzleForPostgres, drizzleForMySQL, drizzleForSQLite, drizzleForLibSQL, drizzleForSingleStore, extractRelations, init2, proxySchema, transactionProxySchema, benchmarkProxySchema, defaultsSchema, schema4, jsonStringify, prepareServer;
|
|
141289
|
+
var import_crypto9, import_drizzle_orm, import_relations, import_mssql_core2, import_mysql_core2, import_pg_core2, import_singlestore_core, import_sqlite_core2, import_fs4, import_node_https2, preparePgSchema, prepareMySqlSchema, prepareMsSqlSchema, prepareSQLiteSchema, prepareSingleStoreSchema, getCustomDefaults, drizzleForPostgres, drizzleForDuckDb, drizzleForMySQL, drizzleForSQLite, drizzleForLibSQL, drizzleForSingleStore, extractRelations, init2, proxySchema, transactionProxySchema, benchmarkProxySchema, defaultsSchema, schema4, jsonStringify, prepareServer;
|
|
141206
141290
|
var init_studio = __esm({
|
|
141207
141291
|
"src/cli/commands/studio.ts"() {
|
|
141208
141292
|
"use strict";
|
|
@@ -141434,6 +141518,23 @@ var init_studio = __esm({
|
|
|
141434
141518
|
casing: casing2
|
|
141435
141519
|
};
|
|
141436
141520
|
};
|
|
141521
|
+
drizzleForDuckDb = async (credentials) => {
|
|
141522
|
+
const { prepareDuckDb: prepareDuckDb2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
|
141523
|
+
const db = await prepareDuckDb2(credentials);
|
|
141524
|
+
const dbUrl = `duckdb://${credentials.url}`;
|
|
141525
|
+
const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
|
|
141526
|
+
return {
|
|
141527
|
+
dbHash,
|
|
141528
|
+
dialect: "duckdb",
|
|
141529
|
+
driver: void 0,
|
|
141530
|
+
packageName: db.packageName,
|
|
141531
|
+
proxy: db.proxy,
|
|
141532
|
+
transactionProxy: db.transactionProxy,
|
|
141533
|
+
customDefaults: [],
|
|
141534
|
+
schema: {},
|
|
141535
|
+
relations: {}
|
|
141536
|
+
};
|
|
141537
|
+
};
|
|
141437
141538
|
drizzleForMySQL = async (credentials, mysqlSchema, relations, schemaFiles, casing2) => {
|
|
141438
141539
|
const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
|
141439
141540
|
const { proxy, transactionProxy, benchmarkProxy, database, packageName } = await connectToMySQL2(credentials);
|
package/api-mysql.mjs
CHANGED
|
@@ -17336,7 +17336,8 @@ var init_schemaValidator = __esm({
|
|
|
17336
17336
|
"singlestore",
|
|
17337
17337
|
"gel",
|
|
17338
17338
|
"mssql",
|
|
17339
|
-
"cockroach"
|
|
17339
|
+
"cockroach",
|
|
17340
|
+
"duckdb"
|
|
17340
17341
|
];
|
|
17341
17342
|
dialect3 = enumType(dialects);
|
|
17342
17343
|
}
|
|
@@ -139543,6 +139544,7 @@ __export(connections_exports, {
|
|
|
139543
139544
|
connectToSQLite: () => connectToSQLite,
|
|
139544
139545
|
connectToSingleStore: () => connectToSingleStore,
|
|
139545
139546
|
prepareCockroach: () => prepareCockroach,
|
|
139547
|
+
prepareDuckDb: () => prepareDuckDb,
|
|
139546
139548
|
prepareGelDB: () => prepareGelDB,
|
|
139547
139549
|
preparePostgresDB: () => preparePostgresDB
|
|
139548
139550
|
});
|
|
@@ -139560,7 +139562,7 @@ function parseMssqlUrl(url) {
|
|
|
139560
139562
|
}
|
|
139561
139563
|
};
|
|
139562
139564
|
}
|
|
139563
|
-
var ms, normalisePGliteUrl, preparePostgresDB, prepareCockroach, prepareGelDB, parseSingleStoreCredentials, connectToSingleStore, parseMysqlCredentials, connectToMySQL, parseMssqlCredentials, connectToMsSQL, prepareSqliteParams, preparePGliteParams, connectToSQLite, connectToLibSQL;
|
|
139565
|
+
var ms, normalisePGliteUrl, preparePostgresDB, prepareDuckDb, prepareCockroach, prepareGelDB, parseSingleStoreCredentials, connectToSingleStore, parseMysqlCredentials, connectToMySQL, parseMssqlCredentials, connectToMsSQL, prepareSqliteParams, preparePGliteParams, connectToSQLite, connectToLibSQL;
|
|
139564
139566
|
var init_connections = __esm({
|
|
139565
139567
|
"src/cli/connections.ts"() {
|
|
139566
139568
|
"use strict";
|
|
@@ -139695,7 +139697,13 @@ var init_connections = __esm({
|
|
|
139695
139697
|
}
|
|
139696
139698
|
return results;
|
|
139697
139699
|
};
|
|
139698
|
-
return {
|
|
139700
|
+
return {
|
|
139701
|
+
packageName: "pglite",
|
|
139702
|
+
query,
|
|
139703
|
+
proxy,
|
|
139704
|
+
transactionProxy,
|
|
139705
|
+
migrate: migrateFn
|
|
139706
|
+
};
|
|
139699
139707
|
}
|
|
139700
139708
|
assertUnreachable(driver2);
|
|
139701
139709
|
}
|
|
@@ -139936,7 +139944,13 @@ var init_connections = __esm({
|
|
|
139936
139944
|
}
|
|
139937
139945
|
return results;
|
|
139938
139946
|
};
|
|
139939
|
-
return {
|
|
139947
|
+
return {
|
|
139948
|
+
packageName: "postgres",
|
|
139949
|
+
query,
|
|
139950
|
+
proxy,
|
|
139951
|
+
transactionProxy,
|
|
139952
|
+
migrate: migrateFn
|
|
139953
|
+
};
|
|
139940
139954
|
}
|
|
139941
139955
|
if (await checkPackage("@vercel/postgres")) {
|
|
139942
139956
|
console.log(
|
|
@@ -140017,7 +140031,13 @@ var init_connections = __esm({
|
|
|
140017
140031
|
}
|
|
140018
140032
|
return results;
|
|
140019
140033
|
};
|
|
140020
|
-
return {
|
|
140034
|
+
return {
|
|
140035
|
+
packageName: "@vercel/postgres",
|
|
140036
|
+
query,
|
|
140037
|
+
proxy,
|
|
140038
|
+
transactionProxy,
|
|
140039
|
+
migrate: migrateFn
|
|
140040
|
+
};
|
|
140021
140041
|
}
|
|
140022
140042
|
if (await checkPackage("@neondatabase/serverless")) {
|
|
140023
140043
|
console.log(
|
|
@@ -140030,7 +140050,11 @@ var init_connections = __esm({
|
|
|
140030
140050
|
"'@neondatabase/serverless' can only connect to remote Neon/Vercel Postgres/Supabase instances through a websocket"
|
|
140031
140051
|
)
|
|
140032
140052
|
);
|
|
140033
|
-
const {
|
|
140053
|
+
const {
|
|
140054
|
+
Pool,
|
|
140055
|
+
neonConfig,
|
|
140056
|
+
types: pgTypes
|
|
140057
|
+
} = await import("@neondatabase/serverless");
|
|
140034
140058
|
const { drizzle } = await import("drizzle-orm/neon-serverless");
|
|
140035
140059
|
const { migrate } = await import("drizzle-orm/neon-serverless/migrator");
|
|
140036
140060
|
const ssl = "ssl" in credentials ? credentials.ssl === "prefer" || credentials.ssl === "require" || credentials.ssl === "allow" ? { rejectUnauthorized: false } : credentials.ssl === "verify-full" ? {} : credentials.ssl : {};
|
|
@@ -140100,7 +140124,13 @@ var init_connections = __esm({
|
|
|
140100
140124
|
}
|
|
140101
140125
|
return results;
|
|
140102
140126
|
};
|
|
140103
|
-
return {
|
|
140127
|
+
return {
|
|
140128
|
+
packageName: "@neondatabase/serverless",
|
|
140129
|
+
query,
|
|
140130
|
+
proxy,
|
|
140131
|
+
transactionProxy,
|
|
140132
|
+
migrate: migrateFn
|
|
140133
|
+
};
|
|
140104
140134
|
}
|
|
140105
140135
|
if (await checkPackage("bun")) {
|
|
140106
140136
|
console.log(withStyle.info(`Using 'bun' driver for database querying`));
|
|
@@ -140151,6 +140181,54 @@ var init_connections = __esm({
|
|
|
140151
140181
|
console.warn("For the 'bun' driver, run your script using: bun --bun");
|
|
140152
140182
|
process.exit(1);
|
|
140153
140183
|
};
|
|
140184
|
+
prepareDuckDb = async (credentials) => {
|
|
140185
|
+
if (await checkPackage("@duckdb/node-api")) {
|
|
140186
|
+
console.log(
|
|
140187
|
+
withStyle.info(`Using '@duckdb/node-api' driver for database querying`)
|
|
140188
|
+
);
|
|
140189
|
+
const { DuckDBInstance } = await import("@duckdb/node-api");
|
|
140190
|
+
const instance = await DuckDBInstance.create(credentials.url);
|
|
140191
|
+
const client = await instance.connect();
|
|
140192
|
+
const query = async (sql, params = []) => {
|
|
140193
|
+
const result2 = await client.run(sql, params);
|
|
140194
|
+
const rows = await result2.getRowObjectsJson();
|
|
140195
|
+
return rows;
|
|
140196
|
+
};
|
|
140197
|
+
const proxy = async (params) => {
|
|
140198
|
+
const result2 = await client.run(params.sql, params.params);
|
|
140199
|
+
return params.mode === "array" ? await result2.getRowsJson() : await result2.getRowObjectsJson();
|
|
140200
|
+
};
|
|
140201
|
+
const transactionProxy = async (queries) => {
|
|
140202
|
+
const results = [];
|
|
140203
|
+
try {
|
|
140204
|
+
await client.run("BEGIN");
|
|
140205
|
+
for (const query2 of queries) {
|
|
140206
|
+
const result2 = await client.run(query2.sql);
|
|
140207
|
+
results.push(await result2.getRowObjectsJson());
|
|
140208
|
+
}
|
|
140209
|
+
await client.run("COMMIT");
|
|
140210
|
+
} catch (error3) {
|
|
140211
|
+
await client.run("ROLLBACK");
|
|
140212
|
+
results.push(error3);
|
|
140213
|
+
}
|
|
140214
|
+
return results;
|
|
140215
|
+
};
|
|
140216
|
+
return {
|
|
140217
|
+
packageName: "@duckdb/node-api",
|
|
140218
|
+
query,
|
|
140219
|
+
proxy,
|
|
140220
|
+
transactionProxy,
|
|
140221
|
+
migrate: () => {
|
|
140222
|
+
throw new Error("DuckDB does not support migrations");
|
|
140223
|
+
}
|
|
140224
|
+
};
|
|
140225
|
+
}
|
|
140226
|
+
console.error(
|
|
140227
|
+
// "To connect to DuckDb database - please install either of 'duckdb', '@duckdb/node-api' drivers",
|
|
140228
|
+
"To connect to DuckDb database - please install '@duckdb/node-api' driver"
|
|
140229
|
+
);
|
|
140230
|
+
process.exit(1);
|
|
140231
|
+
};
|
|
140154
140232
|
prepareCockroach = async (credentials) => {
|
|
140155
140233
|
if (await checkPackage("pg")) {
|
|
140156
140234
|
const { default: pg } = await import("pg");
|
|
@@ -140203,9 +140281,7 @@ var init_connections = __esm({
|
|
|
140203
140281
|
};
|
|
140204
140282
|
return { query, proxy, migrate: migrateFn };
|
|
140205
140283
|
}
|
|
140206
|
-
console.error(
|
|
140207
|
-
"To connect to Cockroach - please install 'pg' package"
|
|
140208
|
-
);
|
|
140284
|
+
console.error("To connect to Cockroach - please install 'pg' package");
|
|
140209
140285
|
process.exit(1);
|
|
140210
140286
|
};
|
|
140211
140287
|
prepareGelDB = async (credentials) => {
|
|
@@ -140264,9 +140340,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140264
140340
|
};
|
|
140265
140341
|
return { packageName: "gel", query, proxy, transactionProxy };
|
|
140266
140342
|
}
|
|
140267
|
-
console.error(
|
|
140268
|
-
"To connect to gel database - please install 'edgedb' driver"
|
|
140269
|
-
);
|
|
140343
|
+
console.error("To connect to gel database - please install 'edgedb' driver");
|
|
140270
140344
|
process.exit(1);
|
|
140271
140345
|
};
|
|
140272
140346
|
parseSingleStoreCredentials = (credentials) => {
|
|
@@ -140718,9 +140792,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140718
140792
|
migrate: migrateFn
|
|
140719
140793
|
};
|
|
140720
140794
|
}
|
|
140721
|
-
console.error(
|
|
140722
|
-
"To connect to MsSQL database - please install 'mssql' driver"
|
|
140723
|
-
);
|
|
140795
|
+
console.error("To connect to MsSQL database - please install 'mssql' driver");
|
|
140724
140796
|
process.exit(1);
|
|
140725
140797
|
};
|
|
140726
140798
|
prepareSqliteParams = (params, driver2) => {
|
|
@@ -140825,7 +140897,10 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
140825
140897
|
await remoteCallback(query2, [], "run");
|
|
140826
140898
|
};
|
|
140827
140899
|
const proxy = async (params) => {
|
|
140828
|
-
const preparedParams = prepareSqliteParams(
|
|
140900
|
+
const preparedParams = prepareSqliteParams(
|
|
140901
|
+
params.params || [],
|
|
140902
|
+
"d1-http"
|
|
140903
|
+
);
|
|
140829
140904
|
const result2 = await remoteCallback(
|
|
140830
140905
|
params.sql,
|
|
140831
140906
|
preparedParams,
|
|
@@ -141050,17 +141125,19 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141050
141125
|
};
|
|
141051
141126
|
const transactionProxy = async (queries) => {
|
|
141052
141127
|
const results = [];
|
|
141053
|
-
const tx = sqlite.transaction(
|
|
141054
|
-
|
|
141055
|
-
|
|
141056
|
-
|
|
141057
|
-
|
|
141058
|
-
|
|
141059
|
-
|
|
141128
|
+
const tx = sqlite.transaction(
|
|
141129
|
+
(queries2) => {
|
|
141130
|
+
for (const query of queries2) {
|
|
141131
|
+
let result2 = [];
|
|
141132
|
+
if (query.method === "values" || query.method === "get" || query.method === "all") {
|
|
141133
|
+
result2 = sqlite.prepare(query.sql).all();
|
|
141134
|
+
} else {
|
|
141135
|
+
sqlite.prepare(query.sql).run();
|
|
141136
|
+
}
|
|
141137
|
+
results.push(result2);
|
|
141060
141138
|
}
|
|
141061
|
-
results.push(result2);
|
|
141062
141139
|
}
|
|
141063
|
-
|
|
141140
|
+
);
|
|
141064
141141
|
try {
|
|
141065
141142
|
tx(queries);
|
|
141066
141143
|
} catch (error3) {
|
|
@@ -141068,7 +141145,13 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141068
141145
|
}
|
|
141069
141146
|
return results;
|
|
141070
141147
|
};
|
|
141071
|
-
return {
|
|
141148
|
+
return {
|
|
141149
|
+
...db,
|
|
141150
|
+
packageName: "better-sqlite3",
|
|
141151
|
+
proxy,
|
|
141152
|
+
transactionProxy,
|
|
141153
|
+
migrate: migrateFn
|
|
141154
|
+
};
|
|
141072
141155
|
}
|
|
141073
141156
|
if (await checkPackage("bun")) {
|
|
141074
141157
|
console.log(withStyle.info(`Using 'bun' driver for database querying`));
|
|
@@ -141198,6 +141281,7 @@ To link your project, please refer https://docs.geldata.com/reference/cli/gel_in
|
|
|
141198
141281
|
// src/cli/commands/studio.ts
|
|
141199
141282
|
var studio_exports = {};
|
|
141200
141283
|
__export(studio_exports, {
|
|
141284
|
+
drizzleForDuckDb: () => drizzleForDuckDb,
|
|
141201
141285
|
drizzleForLibSQL: () => drizzleForLibSQL,
|
|
141202
141286
|
drizzleForMySQL: () => drizzleForMySQL,
|
|
141203
141287
|
drizzleForPostgres: () => drizzleForPostgres,
|
|
@@ -141228,7 +141312,7 @@ import { getTableConfig as singlestoreTableConfig, SingleStoreTable } from "driz
|
|
|
141228
141312
|
import { getTableConfig as sqliteTableConfig, SQLiteTable } from "drizzle-orm/sqlite-core";
|
|
141229
141313
|
import fs9 from "fs";
|
|
141230
141314
|
import { createServer } from "https";
|
|
141231
|
-
var preparePgSchema, prepareMySqlSchema, prepareMsSqlSchema, prepareSQLiteSchema, prepareSingleStoreSchema, getCustomDefaults, drizzleForPostgres, drizzleForMySQL, drizzleForSQLite, drizzleForLibSQL, drizzleForSingleStore, extractRelations, init2, proxySchema, transactionProxySchema, benchmarkProxySchema, defaultsSchema, schema4, jsonStringify, prepareServer;
|
|
141315
|
+
var preparePgSchema, prepareMySqlSchema, prepareMsSqlSchema, prepareSQLiteSchema, prepareSingleStoreSchema, getCustomDefaults, drizzleForPostgres, drizzleForDuckDb, drizzleForMySQL, drizzleForSQLite, drizzleForLibSQL, drizzleForSingleStore, extractRelations, init2, proxySchema, transactionProxySchema, benchmarkProxySchema, defaultsSchema, schema4, jsonStringify, prepareServer;
|
|
141232
141316
|
var init_studio = __esm({
|
|
141233
141317
|
"src/cli/commands/studio.ts"() {
|
|
141234
141318
|
"use strict";
|
|
@@ -141450,6 +141534,23 @@ var init_studio = __esm({
|
|
|
141450
141534
|
casing: casing2
|
|
141451
141535
|
};
|
|
141452
141536
|
};
|
|
141537
|
+
drizzleForDuckDb = async (credentials) => {
|
|
141538
|
+
const { prepareDuckDb: prepareDuckDb2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
|
141539
|
+
const db = await prepareDuckDb2(credentials);
|
|
141540
|
+
const dbUrl = `duckdb://${credentials.url}`;
|
|
141541
|
+
const dbHash = createHash4("sha256").update(dbUrl).digest("hex");
|
|
141542
|
+
return {
|
|
141543
|
+
dbHash,
|
|
141544
|
+
dialect: "duckdb",
|
|
141545
|
+
driver: void 0,
|
|
141546
|
+
packageName: db.packageName,
|
|
141547
|
+
proxy: db.proxy,
|
|
141548
|
+
transactionProxy: db.transactionProxy,
|
|
141549
|
+
customDefaults: [],
|
|
141550
|
+
schema: {},
|
|
141551
|
+
relations: {}
|
|
141552
|
+
};
|
|
141553
|
+
};
|
|
141453
141554
|
drizzleForMySQL = async (credentials, mysqlSchema, relations, schemaFiles, casing2) => {
|
|
141454
141555
|
const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
|
141455
141556
|
const { proxy, transactionProxy, benchmarkProxy, database, packageName } = await connectToMySQL2(credentials);
|