alchemy 0.82.0 → 0.82.2
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/alchemy.js +4 -5
- package/lib/cloudflare/d1-database.d.ts +21 -35
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +57 -100
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/d1-local-migrations.d.ts +3 -4
- package/lib/cloudflare/d1-local-migrations.d.ts.map +1 -1
- package/lib/cloudflare/d1-local-migrations.js +40 -12
- package/lib/cloudflare/d1-local-migrations.js.map +1 -1
- package/lib/cloudflare/d1-migrations.d.ts +0 -8
- package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
- package/lib/cloudflare/d1-migrations.js +0 -35
- package/lib/cloudflare/d1-migrations.js.map +1 -1
- package/lib/cloudflare/d1-sql-file.d.ts +12 -0
- package/lib/cloudflare/d1-sql-file.d.ts.map +1 -0
- package/lib/cloudflare/d1-sql-file.js +38 -0
- package/lib/cloudflare/d1-sql-file.js.map +1 -0
- package/lib/state/d1-state-store.js +8 -8
- package/lib/state/d1-state-store.js.map +1 -1
- package/package.json +4 -7
- package/src/cloudflare/d1-database.ts +125 -187
- package/src/cloudflare/d1-local-migrations.ts +56 -18
- package/src/cloudflare/d1-migrations.ts +0 -43
- package/src/cloudflare/d1-sql-file.ts +52 -0
- package/src/state/d1-state-store.ts +8 -10
- package/workers/cloudflare-state-store.js +71 -65
- package/workers/tunnel-proxy.js +1 -1
package/bin/alchemy.js
CHANGED
|
@@ -37096,7 +37096,7 @@ function envPaths(name$1, { suffix = "nodejs" } = {}) {
|
|
|
37096
37096
|
//#endregion
|
|
37097
37097
|
//#region package.json
|
|
37098
37098
|
var name = "alchemy";
|
|
37099
|
-
var version = "0.82.
|
|
37099
|
+
var version = "0.82.2";
|
|
37100
37100
|
var license = "Apache-2.0";
|
|
37101
37101
|
var author = "Sam Goodwin <sam@alchemy.run>";
|
|
37102
37102
|
var homepage = "https://alchemy.run";
|
|
@@ -37279,6 +37279,7 @@ var dependencies = {
|
|
|
37279
37279
|
"@smithy/node-config-provider": "^4.0.0",
|
|
37280
37280
|
"@smithy/types": "^4.6.0",
|
|
37281
37281
|
"aws4fetch": "^1.0.20",
|
|
37282
|
+
"drizzle-orm": "^0.45.1",
|
|
37282
37283
|
"env-paths": "^3.0.0",
|
|
37283
37284
|
"esbuild": "^0.25.1",
|
|
37284
37285
|
"execa": "^9.6.0",
|
|
@@ -37315,7 +37316,6 @@ var peerDependencies = {
|
|
|
37315
37316
|
"@libsql/client": "^0.15.12",
|
|
37316
37317
|
"@opennextjs/cloudflare": "^1.6.5",
|
|
37317
37318
|
"astro": "^5.13.2",
|
|
37318
|
-
"drizzle-orm": "^0.44.2",
|
|
37319
37319
|
"rwsdk": "^0.1.36",
|
|
37320
37320
|
"stripe": "^18.5.0",
|
|
37321
37321
|
"vite": ">=6.0.0",
|
|
@@ -37336,7 +37336,6 @@ var peerDependenciesMeta = {
|
|
|
37336
37336
|
"@opennextjs/cloudflare": { "optional": true },
|
|
37337
37337
|
"@libsql/client": { "optional": true },
|
|
37338
37338
|
"astro": { "optional": true },
|
|
37339
|
-
"drizzle-orm": { "optional": true },
|
|
37340
37339
|
"rwsdk": { "optional": true },
|
|
37341
37340
|
"stripe": { "optional": true },
|
|
37342
37341
|
"vite": { "optional": true }
|
|
@@ -37377,8 +37376,8 @@ var devDependencies = {
|
|
|
37377
37376
|
"cpx": "^1.5.0",
|
|
37378
37377
|
"debug": "^4.4.1",
|
|
37379
37378
|
"dofs": "^0.1.0",
|
|
37380
|
-
"drizzle-kit": "^0.31.
|
|
37381
|
-
"drizzle-orm": "^0.
|
|
37379
|
+
"drizzle-kit": "^0.31.8",
|
|
37380
|
+
"drizzle-orm": "^0.45.1",
|
|
37382
37381
|
"fs-extra": "^11.3.0",
|
|
37383
37382
|
"globby": "^14.1.0",
|
|
37384
37383
|
"grammy": "^1.37.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
|
|
2
2
|
export type D1DatabaseJurisdiction = "default" | "eu" | "fedramp";
|
|
3
|
-
type PrimaryLocationHint = "wnam" | "enam" | "weur" | "eeur" | "apac" | "
|
|
3
|
+
type PrimaryLocationHint = "wnam" | "enam" | "weur" | "eeur" | "apac" | "oc" | (string & {});
|
|
4
4
|
/**
|
|
5
5
|
* Properties for creating or updating a D1 Database
|
|
6
6
|
*/
|
|
@@ -57,14 +57,10 @@ export interface D1DatabaseProps extends CloudflareApiOptions {
|
|
|
57
57
|
name: string;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @private
|
|
60
|
+
* The names of SQL files to import.
|
|
61
|
+
* After migrations are applied, these files will be run using [Cloudflare's D1 import API](https://developers.cloudflare.com/d1/best-practices/import-export-data/).
|
|
63
62
|
*/
|
|
64
|
-
|
|
65
|
-
id: string;
|
|
66
|
-
sql: string;
|
|
67
|
-
}>;
|
|
63
|
+
importFiles?: string[];
|
|
68
64
|
/**
|
|
69
65
|
* Name of the table used to track migrations. Only used if migrationsDir is specified. Defaults to 'd1_migrations'
|
|
70
66
|
* This is analogous to wrangler's `migrations_table`.
|
|
@@ -100,7 +96,7 @@ export declare function isD1Database(resource: any): resource is D1Database;
|
|
|
100
96
|
/**
|
|
101
97
|
* Output returned after D1 Database creation/update
|
|
102
98
|
*/
|
|
103
|
-
export type D1Database = Pick<D1DatabaseProps, "migrationsDir" | "migrationsTable" | "primaryLocationHint" | "readReplication"> & {
|
|
99
|
+
export type D1Database = Pick<D1DatabaseProps, "migrationsDir" | "migrationsTable" | "primaryLocationHint" | "readReplication" | "importFiles"> & {
|
|
104
100
|
type: "d1";
|
|
105
101
|
/**
|
|
106
102
|
* The unique ID of the database (UUID)
|
|
@@ -206,50 +202,40 @@ export type D1Database = Pick<D1DatabaseProps, "migrationsDir" | "migrationsTabl
|
|
|
206
202
|
* @see https://developers.cloudflare.com/d1/
|
|
207
203
|
*/
|
|
208
204
|
export declare function D1Database(id: string, props?: Omit<D1DatabaseProps, "migrationsFiles">): Promise<D1Database>;
|
|
209
|
-
interface
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
};
|
|
220
|
-
jurisdiction?: string;
|
|
205
|
+
interface D1ResponseObject {
|
|
206
|
+
uuid: string;
|
|
207
|
+
name: string;
|
|
208
|
+
created_at: string;
|
|
209
|
+
version: string;
|
|
210
|
+
num_tables: number;
|
|
211
|
+
file_size: number;
|
|
212
|
+
running_in_region: "EEUR" | "APAC" | "WNAM" | "ENAM" | "WEUR" | "EEUR" | "OC";
|
|
213
|
+
read_replication: {
|
|
214
|
+
mode: "auto" | "disabled";
|
|
221
215
|
};
|
|
222
|
-
|
|
223
|
-
errors: Array<{
|
|
224
|
-
code: number;
|
|
225
|
-
message: string;
|
|
226
|
-
}>;
|
|
227
|
-
messages: string[];
|
|
216
|
+
jurisdiction: "eu" | "fedramp" | null;
|
|
228
217
|
}
|
|
229
218
|
/**
|
|
230
219
|
* Create a new D1 database
|
|
231
220
|
*/
|
|
232
|
-
export declare function createDatabase(api: CloudflareApi, databaseName: string, props: D1DatabaseProps): Promise<
|
|
221
|
+
export declare function createDatabase(api: CloudflareApi, databaseName: string, props: Pick<D1DatabaseProps, "jurisdiction" | "primaryLocationHint" | "readReplication">): Promise<D1ResponseObject>;
|
|
233
222
|
/**
|
|
234
223
|
* Get a D1 database
|
|
235
224
|
*/
|
|
236
|
-
export declare function getDatabase(api: CloudflareApi, databaseId
|
|
225
|
+
export declare function getDatabase(api: CloudflareApi, databaseId: string): Promise<D1ResponseObject>;
|
|
237
226
|
/**
|
|
238
227
|
* Delete a D1 database
|
|
239
228
|
*/
|
|
240
|
-
export declare function deleteDatabase(api: CloudflareApi, databaseId
|
|
229
|
+
export declare function deleteDatabase(api: CloudflareApi, databaseId: string): Promise<void>;
|
|
241
230
|
/**
|
|
242
231
|
* List all D1 databases in an account
|
|
243
232
|
*/
|
|
244
|
-
export declare function listDatabases(api: CloudflareApi, name?: string
|
|
245
|
-
name: string;
|
|
246
|
-
id: string;
|
|
247
|
-
}[]>;
|
|
233
|
+
export declare function listDatabases(api: CloudflareApi, name?: string): Promise<D1ResponseObject[]>;
|
|
248
234
|
/**
|
|
249
235
|
* Update a D1 database
|
|
250
236
|
*
|
|
251
237
|
* Note: According to Cloudflare API, only read_replication.mode can be modified during updates.
|
|
252
238
|
*/
|
|
253
|
-
export declare function
|
|
239
|
+
export declare function updateReadReplicationMode(api: CloudflareApi, databaseId: string, readReplicationMode: "auto" | "disabled"): Promise<D1ResponseObject>;
|
|
254
240
|
export {};
|
|
255
241
|
//# sourceMappingURL=d1-database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1-database.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"d1-database.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Resource, ResourceKind } from "../resource.js";
|
|
2
2
|
import { Scope } from "../scope.js";
|
|
3
3
|
import { logger } from "../util/logger.js";
|
|
4
|
-
import { CloudflareApiError
|
|
4
|
+
import { CloudflareApiError } from "./api-error.js";
|
|
5
|
+
import { extractCloudflareResult } from "./api-response.js";
|
|
5
6
|
import { createCloudflareApi, } from "./api.js";
|
|
6
|
-
import { withJurisdiction } from "./bucket.js";
|
|
7
7
|
import { cloneD1Database } from "./d1-clone.js";
|
|
8
|
+
import { importD1Database } from "./d1-import.js";
|
|
8
9
|
import { applyLocalD1Migrations } from "./d1-local-migrations.js";
|
|
9
|
-
import { applyMigrations
|
|
10
|
+
import { applyMigrations } from "./d1-migrations.js";
|
|
11
|
+
import { listSqlFiles, readSqlFile } from "./d1-sql-file.js";
|
|
10
12
|
import { deleteMiniflareBinding } from "./miniflare/delete.js";
|
|
11
13
|
const DEFAULT_MIGRATIONS_TABLE = "d1_migrations";
|
|
12
14
|
export function isD1Database(resource) {
|
|
@@ -89,12 +91,16 @@ export function isD1Database(resource) {
|
|
|
89
91
|
* @see https://developers.cloudflare.com/d1/
|
|
90
92
|
*/
|
|
91
93
|
export async function D1Database(id, props = {}) {
|
|
92
|
-
const migrationsFiles =
|
|
93
|
-
? await
|
|
94
|
-
|
|
94
|
+
const [migrationsFiles, importFiles] = await Promise.all([
|
|
95
|
+
props.migrationsDir ? await listSqlFiles(props.migrationsDir) : [],
|
|
96
|
+
props.importFiles
|
|
97
|
+
? await Promise.all(props.importFiles.map((file) => readSqlFile(Scope.current.rootDir, file)))
|
|
98
|
+
: [],
|
|
99
|
+
]);
|
|
95
100
|
return _D1Database(id, {
|
|
96
101
|
...props,
|
|
97
102
|
migrationsFiles,
|
|
103
|
+
importFiles,
|
|
98
104
|
dev: {
|
|
99
105
|
...(props.dev ?? {}),
|
|
100
106
|
// force local migrations to run even if the database was already deployed live
|
|
@@ -111,16 +117,17 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
111
117
|
}
|
|
112
118
|
const local = this.scope.local && !props.dev?.remote;
|
|
113
119
|
const dev = {
|
|
114
|
-
id: this.output?.dev?.id ?? this.output?.id ??
|
|
120
|
+
id: this.output?.dev?.id ?? this.output?.id ?? databaseName,
|
|
115
121
|
remote: props.dev?.remote ?? false,
|
|
116
122
|
};
|
|
117
123
|
const adopt = props.adopt ?? this.scope.adopt;
|
|
118
124
|
if (local) {
|
|
119
|
-
if (props.migrationsFiles
|
|
125
|
+
if (props.migrationsFiles?.length || props.importFiles?.length) {
|
|
120
126
|
await applyLocalD1Migrations({
|
|
121
127
|
databaseId: dev.id,
|
|
122
128
|
migrationsTable: props.migrationsTable ?? DEFAULT_MIGRATIONS_TABLE,
|
|
123
|
-
migrations: props.migrationsFiles,
|
|
129
|
+
migrations: props.migrationsFiles ?? [],
|
|
130
|
+
imports: props.importFiles ?? [],
|
|
124
131
|
rootDir: this.scope.rootDir,
|
|
125
132
|
});
|
|
126
133
|
}
|
|
@@ -142,7 +149,7 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
142
149
|
await deleteMiniflareBinding(this.scope, "d1", this.output.dev.id);
|
|
143
150
|
}
|
|
144
151
|
if (props.delete !== false && this.output?.id) {
|
|
145
|
-
await deleteDatabase(api, this.output.id
|
|
152
|
+
await deleteDatabase(api, this.output.id);
|
|
146
153
|
}
|
|
147
154
|
// Return void (a deleted database has no content)
|
|
148
155
|
return this.destroy();
|
|
@@ -155,13 +162,9 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
155
162
|
!this.output?.id) {
|
|
156
163
|
try {
|
|
157
164
|
dbData = await createDatabase(api, databaseName, props);
|
|
158
|
-
// Read replication cannot be set during creation, so update it after creation
|
|
159
|
-
if (props.readReplication && dbData.result.uuid) {
|
|
160
|
-
dbData = await updateDatabase(api, dbData.result.uuid, props);
|
|
161
|
-
}
|
|
162
165
|
// If clone property is provided, perform cloning after database creation
|
|
163
|
-
if (props.clone && dbData.
|
|
164
|
-
await cloneDb(api, props.clone, dbData.
|
|
166
|
+
if (props.clone && dbData.uuid) {
|
|
167
|
+
await cloneDb(api, props.clone, dbData.uuid);
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
170
|
catch (error) {
|
|
@@ -171,16 +174,16 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
171
174
|
error.message.includes("already exists")) {
|
|
172
175
|
logger.log(`Database ${databaseName} already exists, adopting it`);
|
|
173
176
|
// Find the existing database by name
|
|
174
|
-
const databases = await listDatabases(api, databaseName
|
|
177
|
+
const databases = await listDatabases(api, databaseName);
|
|
175
178
|
const existingDb = databases.find((db) => db.name === databaseName);
|
|
176
179
|
if (!existingDb) {
|
|
177
180
|
throw new Error(`Failed to find existing database '${databaseName}' for adoption`);
|
|
178
181
|
}
|
|
179
182
|
// Get the database details using its ID
|
|
180
|
-
dbData = await getDatabase(api, existingDb.
|
|
183
|
+
dbData = await getDatabase(api, existingDb.uuid);
|
|
181
184
|
// Update the database with the provided properties
|
|
182
185
|
if (props.readReplication) {
|
|
183
|
-
dbData = await
|
|
186
|
+
dbData = await updateReadReplicationMode(api, existingDb.uuid, props.readReplication?.mode);
|
|
184
187
|
}
|
|
185
188
|
}
|
|
186
189
|
else {
|
|
@@ -200,7 +203,7 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
200
203
|
throw new Error(`Cannot update jurisdiction from '${this.output.jurisdiction}' to '${props.jurisdiction}' after database creation.`);
|
|
201
204
|
}
|
|
202
205
|
// Update the database with new properties
|
|
203
|
-
dbData = await
|
|
206
|
+
dbData = await updateReadReplicationMode(api, this.output.id, props.readReplication?.mode ?? "disabled");
|
|
204
207
|
}
|
|
205
208
|
else {
|
|
206
209
|
// If no ID exists, fall back to creating a new database
|
|
@@ -210,15 +213,11 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
210
213
|
if (props.migrationsFiles && props.migrationsFiles.length > 0) {
|
|
211
214
|
try {
|
|
212
215
|
const migrationsTable = props.migrationsTable || DEFAULT_MIGRATIONS_TABLE;
|
|
213
|
-
const databaseId = dbData.result.uuid || this.output?.id;
|
|
214
|
-
if (!databaseId) {
|
|
215
|
-
throw new Error("Database ID not found for migrations");
|
|
216
|
-
}
|
|
217
216
|
await applyMigrations({
|
|
218
217
|
migrationsFiles: props.migrationsFiles,
|
|
219
218
|
migrationsTable,
|
|
220
219
|
accountId: api.accountId,
|
|
221
|
-
databaseId,
|
|
220
|
+
databaseId: dbData.uuid,
|
|
222
221
|
api,
|
|
223
222
|
});
|
|
224
223
|
}
|
|
@@ -227,13 +226,18 @@ const _D1Database = Resource("cloudflare::D1Database", async function (id, props
|
|
|
227
226
|
throw migrationErr;
|
|
228
227
|
}
|
|
229
228
|
}
|
|
230
|
-
if (
|
|
231
|
-
|
|
232
|
-
|
|
229
|
+
if (props.importFiles?.length) {
|
|
230
|
+
await Promise.all(props.importFiles.map(async (file) => {
|
|
231
|
+
await importD1Database(api, {
|
|
232
|
+
databaseId: dbData.uuid,
|
|
233
|
+
sqlData: file.sql,
|
|
234
|
+
filename: file.id,
|
|
235
|
+
});
|
|
236
|
+
}));
|
|
233
237
|
}
|
|
234
238
|
return {
|
|
235
239
|
type: "d1",
|
|
236
|
-
id: dbData.
|
|
240
|
+
id: dbData.uuid,
|
|
237
241
|
name: databaseName,
|
|
238
242
|
readReplication: props.readReplication,
|
|
239
243
|
primaryLocationHint: props.primaryLocationHint,
|
|
@@ -251,95 +255,50 @@ export async function createDatabase(api, databaseName, props) {
|
|
|
251
255
|
const createPayload = {
|
|
252
256
|
name: databaseName,
|
|
253
257
|
jurisdiction: props.jurisdiction !== "default" ? props.jurisdiction : undefined,
|
|
258
|
+
primary_location_hint: props.primaryLocationHint,
|
|
254
259
|
};
|
|
255
|
-
|
|
256
|
-
|
|
260
|
+
const database = await extractCloudflareResult(`create D1 database "${databaseName}"`, api.post(`/accounts/${api.accountId}/d1/database`, createPayload));
|
|
261
|
+
if (!database.uuid) {
|
|
262
|
+
// this is included in the spec as optional... why is it optional? we may never know...
|
|
263
|
+
throw new Error("Missing UUID for created database");
|
|
257
264
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
});
|
|
261
|
-
if (!createResponse.ok) {
|
|
262
|
-
return await handleApiError(createResponse, "creating", "D1 database", databaseName);
|
|
265
|
+
if (props.readReplication?.mode) {
|
|
266
|
+
return await updateReadReplicationMode(api, database.uuid, props.readReplication?.mode);
|
|
263
267
|
}
|
|
264
|
-
return
|
|
268
|
+
return database;
|
|
265
269
|
}
|
|
266
270
|
/**
|
|
267
271
|
* Get a D1 database
|
|
268
272
|
*/
|
|
269
|
-
export async function getDatabase(api, databaseId
|
|
270
|
-
|
|
271
|
-
throw new Error("Database ID is required");
|
|
272
|
-
}
|
|
273
|
-
const response = await api.get(`/accounts/${api.accountId}/d1/database/${databaseId}`, {
|
|
274
|
-
headers: withJurisdiction(props),
|
|
275
|
-
});
|
|
276
|
-
if (!response.ok) {
|
|
277
|
-
return await handleApiError(response, "getting", "D1 database", databaseId);
|
|
278
|
-
}
|
|
279
|
-
return (await response.json());
|
|
273
|
+
export async function getDatabase(api, databaseId) {
|
|
274
|
+
return await extractCloudflareResult(`get D1 database "${databaseId}"`, api.get(`/accounts/${api.accountId}/d1/database/${databaseId}`));
|
|
280
275
|
}
|
|
281
276
|
/**
|
|
282
277
|
* Delete a D1 database
|
|
283
278
|
*/
|
|
284
|
-
export async function deleteDatabase(api, databaseId
|
|
285
|
-
|
|
286
|
-
logger.log("No database ID provided, skipping delete");
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
// Delete D1 database
|
|
290
|
-
const deleteResponse = await api.delete(`/accounts/${api.accountId}/d1/database/${databaseId}`, {
|
|
291
|
-
headers: withJurisdiction(props),
|
|
292
|
-
});
|
|
293
|
-
if (!deleteResponse.ok && deleteResponse.status !== 404) {
|
|
294
|
-
const errorData = await deleteResponse.json().catch(() => ({
|
|
295
|
-
errors: [{ message: deleteResponse.statusText }],
|
|
296
|
-
}));
|
|
297
|
-
throw new CloudflareApiError(`Error deleting D1 database '${databaseId}': ${errorData.errors?.[0]?.message || deleteResponse.statusText}`, deleteResponse);
|
|
298
|
-
}
|
|
279
|
+
export async function deleteDatabase(api, databaseId) {
|
|
280
|
+
await extractCloudflareResult(`delete D1 database "${databaseId}"`, api.delete(`/accounts/${api.accountId}/d1/database/${databaseId}`));
|
|
299
281
|
}
|
|
300
282
|
/**
|
|
301
283
|
* List all D1 databases in an account
|
|
302
284
|
*/
|
|
303
|
-
export async function listDatabases(api, name
|
|
285
|
+
export async function listDatabases(api, name) {
|
|
304
286
|
// Construct query string if name is provided
|
|
305
287
|
const queryParams = name ? `?name=${encodeURIComponent(name)}` : "";
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
});
|
|
309
|
-
if (!response.ok) {
|
|
310
|
-
throw new CloudflareApiError(`Failed to list databases: ${response.statusText}`, response);
|
|
311
|
-
}
|
|
312
|
-
const data = (await response.json());
|
|
313
|
-
if (!data.success) {
|
|
314
|
-
const errorMessage = data.errors?.[0]?.message || "Unknown error";
|
|
315
|
-
throw new Error(`Failed to list databases: ${errorMessage}`);
|
|
316
|
-
}
|
|
317
|
-
// Transform API response
|
|
318
|
-
return (data.result || []).map((db) => ({
|
|
319
|
-
name: db.name,
|
|
320
|
-
id: db.uuid,
|
|
321
|
-
}));
|
|
288
|
+
// TODO(john): handle pagination (wasn't handled originally)
|
|
289
|
+
return await extractCloudflareResult(`list D1 databases${name ? ` with name "${name}"` : ""}`, api.get(`/accounts/${api.accountId}/d1/database${queryParams}`));
|
|
322
290
|
}
|
|
323
291
|
/**
|
|
324
292
|
* Update a D1 database
|
|
325
293
|
*
|
|
326
294
|
* Note: According to Cloudflare API, only read_replication.mode can be modified during updates.
|
|
327
295
|
*/
|
|
328
|
-
export async function
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
};
|
|
335
|
-
}
|
|
336
|
-
const updateResponse = await api.patch(`/accounts/${api.accountId}/d1/database/${databaseId}`, updatePayload, {
|
|
337
|
-
headers: withJurisdiction(props),
|
|
338
|
-
});
|
|
339
|
-
if (!updateResponse.ok) {
|
|
340
|
-
return await handleApiError(updateResponse, "updating", "D1 database", databaseId);
|
|
341
|
-
}
|
|
342
|
-
return (await updateResponse.json());
|
|
296
|
+
export async function updateReadReplicationMode(api, databaseId, readReplicationMode) {
|
|
297
|
+
return await extractCloudflareResult(`update read replication mode for D1 database "${databaseId}"`, api.patch(`/accounts/${api.accountId}/d1/database/${databaseId}`, {
|
|
298
|
+
read_replication: {
|
|
299
|
+
mode: readReplicationMode,
|
|
300
|
+
},
|
|
301
|
+
}));
|
|
343
302
|
}
|
|
344
303
|
/**
|
|
345
304
|
* Helper function to clone data from a source database to a target database
|
|
@@ -349,7 +308,7 @@ export async function updateDatabase(api, databaseId, props) {
|
|
|
349
308
|
* @param sourceDb Source database specification (can be an ID, a name, or a D1Database object)
|
|
350
309
|
* @param targetDbId Target database ID
|
|
351
310
|
*/
|
|
352
|
-
async function cloneDb(api, sourceDb, targetDbId
|
|
311
|
+
async function cloneDb(api, sourceDb, targetDbId) {
|
|
353
312
|
let sourceId;
|
|
354
313
|
// Determine source database ID
|
|
355
314
|
if ("id" in sourceDb && sourceDb.id) {
|
|
@@ -358,14 +317,12 @@ async function cloneDb(api, sourceDb, targetDbId, jurisdiction) {
|
|
|
358
317
|
}
|
|
359
318
|
else if ("name" in sourceDb && sourceDb.name) {
|
|
360
319
|
// Look up ID by name
|
|
361
|
-
const databases = await listDatabases(api, sourceDb.name
|
|
362
|
-
jurisdiction,
|
|
363
|
-
});
|
|
320
|
+
const databases = await listDatabases(api, sourceDb.name);
|
|
364
321
|
const foundDb = databases.find((db) => db.name === sourceDb.name);
|
|
365
322
|
if (!foundDb) {
|
|
366
323
|
throw new Error(`Source database with name '${sourceDb.name}' not found for cloning`);
|
|
367
324
|
}
|
|
368
|
-
sourceId = foundDb.
|
|
325
|
+
sourceId = foundDb.uuid;
|
|
369
326
|
}
|
|
370
327
|
else if ("type" in sourceDb && sourceDb.type === "d1" && "id" in sourceDb) {
|
|
371
328
|
// It's a D1Database object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1-database.js","sourceRoot":"","sources":["../../src/cloudflare/d1-database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"d1-database.js","sourceRoot":"","sources":["../../src/cloudflare/d1-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
import type { D1SqlFile } from "./d1-sql-file.ts";
|
|
1
2
|
export interface D1LocalMigrationOptions {
|
|
2
3
|
rootDir: string;
|
|
3
4
|
databaseId: string;
|
|
4
5
|
migrationsTable: string;
|
|
5
|
-
migrations:
|
|
6
|
-
|
|
7
|
-
sql: string;
|
|
8
|
-
}[];
|
|
6
|
+
migrations: Array<D1SqlFile>;
|
|
7
|
+
imports: Array<D1SqlFile>;
|
|
9
8
|
}
|
|
10
9
|
export declare const applyLocalD1Migrations: (options: D1LocalMigrationOptions) => Promise<void>;
|
|
11
10
|
//# sourceMappingURL=d1-local-migrations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1-local-migrations.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-local-migrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"d1-local-migrations.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-local-migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB,GACjC,SAAS,uBAAuB,kBAgFjC,CAAC"}
|
|
@@ -11,26 +11,54 @@ export const applyLocalD1Migrations = async (options) => {
|
|
|
11
11
|
});
|
|
12
12
|
try {
|
|
13
13
|
await miniflare.ready;
|
|
14
|
-
// TODO(sam): don't use `any` once prisma is fixed upstream
|
|
15
14
|
const db = await miniflare.getD1Database("DB");
|
|
16
15
|
const session = db.withSession("first-primary");
|
|
17
|
-
await session
|
|
18
|
-
.prepare(`
|
|
16
|
+
const tableInfo = await session
|
|
17
|
+
.prepare(`PRAGMA table_info(${options.migrationsTable});`)
|
|
18
|
+
.all();
|
|
19
|
+
if (tableInfo.results.length === 0) {
|
|
20
|
+
await session
|
|
21
|
+
.prepare(`CREATE TABLE ${options.migrationsTable} (
|
|
19
22
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
20
23
|
name TEXT NOT NULL,
|
|
21
|
-
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
24
|
+
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
25
|
+
type TEXT NOT NULL
|
|
22
26
|
)`)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
.run();
|
|
28
|
+
}
|
|
29
|
+
else if (!tableInfo.results.some((col) => col.name === "type")) {
|
|
30
|
+
await session
|
|
31
|
+
.prepare(`ALTER TABLE ${options.migrationsTable} ADD COLUMN type TEXT NOT NULL DEFAULT 'migration';`)
|
|
32
|
+
.run();
|
|
33
|
+
}
|
|
34
|
+
const applied = await session
|
|
35
|
+
.prepare(`SELECT name, type FROM ${options.migrationsTable} ORDER BY applied_at ASC`)
|
|
26
36
|
.all();
|
|
27
|
-
const insertRecord = session.prepare(`INSERT INTO ${options.migrationsTable} (name) VALUES (?)`);
|
|
28
|
-
for (const
|
|
29
|
-
if (
|
|
37
|
+
const insertRecord = session.prepare(`INSERT INTO ${options.migrationsTable} (name, type) VALUES (?, ?)`);
|
|
38
|
+
for (const { id, sql } of options.migrations) {
|
|
39
|
+
if (applied.results.some((m) => m.name === id)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const statements = sql
|
|
43
|
+
.split("--> statement-breakpoint")
|
|
44
|
+
.filter((s) => s.trim())
|
|
45
|
+
.map((s) => session.prepare(s));
|
|
46
|
+
statements.push(insertRecord.bind(id, "migration"));
|
|
47
|
+
await session.batch(statements);
|
|
48
|
+
}
|
|
49
|
+
for (const { id, sql, hash } of options.imports) {
|
|
50
|
+
const name = `${id}-${hash}`;
|
|
51
|
+
if (applied.results.some((m) => m.name === name)) {
|
|
30
52
|
continue;
|
|
31
53
|
}
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
// Split into statements to prevent D1_ERROR: statement too long: SQLITE_TOOBIG.
|
|
55
|
+
// This is split naively by semicolons followed by newlines - not perfect but should work 99% of the time.
|
|
56
|
+
const statements = sql
|
|
57
|
+
.split(/;\r?\n/)
|
|
58
|
+
.filter((s) => s.trim())
|
|
59
|
+
.map((s) => session.prepare(s));
|
|
60
|
+
statements.push(insertRecord.bind(name, "import"));
|
|
61
|
+
await session.batch(statements);
|
|
34
62
|
}
|
|
35
63
|
}
|
|
36
64
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1-local-migrations.js","sourceRoot":"","sources":["../../src/cloudflare/d1-local-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"d1-local-migrations.js","sourceRoot":"","sources":["../../src/cloudflare/d1-local-migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,6 @@ export interface D1MigrationOptions {
|
|
|
10
10
|
api: CloudflareApi;
|
|
11
11
|
quiet?: boolean;
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Reads migration SQL files from the migrationsDir, sorted by filename.
|
|
15
|
-
* @param migrationsDir Directory containing .sql migration files
|
|
16
|
-
*/
|
|
17
|
-
export declare function listMigrationsFiles(migrationsDir: string): Promise<Array<{
|
|
18
|
-
id: string;
|
|
19
|
-
sql: string;
|
|
20
|
-
}>>;
|
|
21
13
|
/**
|
|
22
14
|
* Ensures the migrations table exists in the D1 database with wrangler-compatible schema.
|
|
23
15
|
* Handles migration from legacy 2-column schema to 3-column schema if needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1-migrations.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-migrations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"d1-migrations.d.ts","sourceRoot":"","sources":["../../src/cloudflare/d1-migrations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAmID;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAStB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,MAAM,EAAE;QACN;YACE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,EAAE,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC;SACX;KACF,CAAC;IACF,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CAgBD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsDf"}
|