nanodb-orm 0.0.8 → 0.1.0
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/README.md +82 -60
- package/dist/cli.d.ts +20 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +81 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/connection.d.ts +2 -0
- package/dist/core/connection.d.ts.map +1 -1
- package/dist/core/connection.js +5 -5
- package/dist/core/connection.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +9 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +87 -22
- package/dist/init.js.map +1 -1
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/migrations.d.ts +5 -1
- package/dist/utils/migrations.d.ts.map +1 -1
- package/dist/utils/migrations.js +176 -51
- package/dist/utils/migrations.js.map +1 -1
- package/dist/utils/schema-introspection.d.ts.map +1 -1
- package/dist/utils/schema-introspection.js +2 -1
- package/dist/utils/schema-introspection.js.map +1 -1
- package/dist/utils/seeds.js +9 -16
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/sql-safety.d.ts +2 -0
- package/dist/utils/sql-safety.d.ts.map +1 -0
- package/dist/utils/sql-safety.js +11 -0
- package/dist/utils/sql-safety.js.map +1 -0
- package/dist/utils/sync.d.ts.map +1 -1
- package/dist/utils/sync.js +4 -2
- package/dist/utils/sync.js.map +1 -1
- package/dist/utils/transactions.d.ts.map +1 -1
- package/dist/utils/transactions.js +12 -8
- package/dist/utils/transactions.js.map +1 -1
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -23,6 +23,11 @@ npm install nanodb-orm
|
|
|
23
23
|
|
|
24
24
|
This repo is managed as an npm workspace with core + plugin packages.
|
|
25
25
|
See `PACKAGES.md` for layout and cross-package commands.
|
|
26
|
+
For upcoming hardening scope, see `V0_0_9_PLAN.md`.
|
|
27
|
+
Operational docs:
|
|
28
|
+
- `docs/PRODUCTION_CHECKLIST.md`
|
|
29
|
+
- `docs/PLUGIN_AUTHOR_GUIDE.md`
|
|
30
|
+
- `docs/UPGRADING.md`
|
|
26
31
|
|
|
27
32
|
> **Important:** All interactions should go through `nanodb-orm`.
|
|
28
33
|
> Use `nanodb-orm` exports for schema, queries, and utilities instead of importing from Drizzle directly.
|
|
@@ -30,7 +35,7 @@ See `PACKAGES.md` for layout and cross-package commands.
|
|
|
30
35
|
Optional plugins:
|
|
31
36
|
|
|
32
37
|
```bash
|
|
33
|
-
npm install @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
38
|
+
npm install @nanodb-orm/plugin-auth @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
34
39
|
```
|
|
35
40
|
|
|
36
41
|
> Plugin preview rule: multi-plugin mode requires `preview: { deterministicPluginOrdering: true }`.
|
|
@@ -38,62 +43,9 @@ npm install @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb
|
|
|
38
43
|
|
|
39
44
|
Preview features: embedded replicas (opt-in via config switch).
|
|
40
45
|
|
|
41
|
-
## CLI
|
|
42
|
-
|
|
43
|
-
nanodb-orm includes a CLI for common database operations:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Launch Drizzle Studio (visual database browser)
|
|
47
|
-
npx nanodb studio
|
|
48
|
-
|
|
49
|
-
# With custom port
|
|
50
|
-
npx nanodb studio --port 3000
|
|
51
|
-
|
|
52
|
-
# With specific database file
|
|
53
|
-
npx nanodb studio --db ./data/myapp.db
|
|
54
|
-
|
|
55
|
-
# Other commands
|
|
56
|
-
npx nanodb setup # Initialize schema and seed data
|
|
57
|
-
npx nanodb reset # Drop all tables and recreate
|
|
58
|
-
npx nanodb status # Show database health and stats
|
|
59
|
-
npx nanodb validate # Validate schema against database
|
|
60
|
-
npx nanodb help # Show all commands
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Drizzle Studio
|
|
64
|
-
|
|
65
|
-
Launch a visual database browser at `https://local.drizzle.studio`:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
npx nanodb studio
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-

|
|
72
|
-
|
|
73
|
-
## Import Styles
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
// Default import (recommended)
|
|
77
|
-
import nanodb from 'nanodb-orm';
|
|
78
|
-
|
|
79
|
-
const users = nanodb.schema.table('users', { ... });
|
|
80
|
-
const db = await nanodb.createDatabase({ tables: { users } });
|
|
81
|
-
await db.select().from(users).where(nanodb.query.eq(users.id, 1));
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
// Named imports
|
|
86
|
-
import { createDatabase, schema, query } from 'nanodb-orm';
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// Individual imports (tree-shakeable)
|
|
91
|
-
import { createDatabase, table, integer, text, eq } from 'nanodb-orm';
|
|
92
|
-
```
|
|
93
|
-
|
|
94
46
|
## Quick Start
|
|
95
47
|
|
|
96
|
-
###
|
|
48
|
+
### Define Your Schema
|
|
97
49
|
|
|
98
50
|
```typescript
|
|
99
51
|
import nanodb from 'nanodb-orm';
|
|
@@ -112,7 +64,7 @@ const posts = nanodb.schema.table('posts', {
|
|
|
112
64
|
});
|
|
113
65
|
```
|
|
114
66
|
|
|
115
|
-
###
|
|
67
|
+
### Create Database
|
|
116
68
|
|
|
117
69
|
```typescript
|
|
118
70
|
const db = await nanodb.createDatabase({
|
|
@@ -125,7 +77,7 @@ const db = await nanodb.createDatabase({
|
|
|
125
77
|
export { db };
|
|
126
78
|
```
|
|
127
79
|
|
|
128
|
-
###
|
|
80
|
+
### Query Your Data
|
|
129
81
|
|
|
130
82
|
```typescript
|
|
131
83
|
// SELECT
|
|
@@ -142,6 +94,59 @@ await db.update(users).set({ name: 'Robert' }).where(nanodb.query.eq(users.email
|
|
|
142
94
|
await db.delete(users).where(nanodb.query.eq(users.email, 'bob@example.com'));
|
|
143
95
|
```
|
|
144
96
|
|
|
97
|
+
## Import Styles
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
// Default import (recommended)
|
|
101
|
+
import nanodb from 'nanodb-orm';
|
|
102
|
+
|
|
103
|
+
const users = nanodb.schema.table('users', { ... });
|
|
104
|
+
const db = await nanodb.createDatabase({ tables: { users } });
|
|
105
|
+
await db.select().from(users).where(nanodb.query.eq(users.id, 1));
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// Named imports
|
|
110
|
+
import { createDatabase, schema, query } from 'nanodb-orm';
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// Individual imports (tree-shakeable)
|
|
115
|
+
import { createDatabase, table, integer, text, eq } from 'nanodb-orm';
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## CLI
|
|
119
|
+
|
|
120
|
+
nanodb-orm includes a CLI for common database operations:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Launch Drizzle Studio (visual database browser)
|
|
124
|
+
npx nanodb studio
|
|
125
|
+
|
|
126
|
+
# With custom port
|
|
127
|
+
npx nanodb studio --port 3000
|
|
128
|
+
|
|
129
|
+
# With specific database file
|
|
130
|
+
npx nanodb studio --db ./data/myapp.db
|
|
131
|
+
|
|
132
|
+
# Other commands
|
|
133
|
+
npx nanodb setup # Initialize schema and seed data
|
|
134
|
+
npx nanodb reset # Drop all tables and recreate
|
|
135
|
+
npx nanodb status # Show database health and stats
|
|
136
|
+
npx nanodb validate # Validate schema against database
|
|
137
|
+
npx nanodb help # Show all commands
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Drizzle Studio
|
|
141
|
+
|
|
142
|
+
Launch a visual database browser at `https://local.drizzle.studio`:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npx nanodb studio
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+

|
|
149
|
+
|
|
145
150
|
## Type Inference
|
|
146
151
|
|
|
147
152
|
nanodb-orm provides full type inference from your schema:
|
|
@@ -214,13 +219,22 @@ const db = await createDatabase({
|
|
|
214
219
|
preserveData: true, // default: true
|
|
215
220
|
autoMigrate: true, // default: true
|
|
216
221
|
dropTables: false, // default: false
|
|
222
|
+
dryRun: false, // default: false (plan-only, no schema writes)
|
|
223
|
+
backupBeforeMigrate: false, // optional backup before applying schema changes
|
|
224
|
+
backupPath: '', // optional backup file path (local SQLite)
|
|
217
225
|
},
|
|
226
|
+
connectionProfile: 'default', // 'default' | 'serverless' | 'long_lived'
|
|
218
227
|
useSingletonConnection: false, // default: false
|
|
219
228
|
plugins: [auditPlugin], // optional
|
|
220
229
|
preview: { deterministicPluginOrdering: true }, // optional preview for multi-plugin mode
|
|
221
230
|
});
|
|
222
231
|
```
|
|
223
232
|
|
|
233
|
+
Connection profile behavior:
|
|
234
|
+
- `default`: non-singleton by default
|
|
235
|
+
- `serverless`: non-singleton by default, local fallback uses in-memory SQLite
|
|
236
|
+
- `long_lived`: singleton by default when no explicit `connection` override is provided
|
|
237
|
+
|
|
224
238
|
### Database Operations (from `db`)
|
|
225
239
|
|
|
226
240
|
```typescript
|
|
@@ -253,6 +267,8 @@ db.schema.relationships(); // Foreign key relationships
|
|
|
253
267
|
await db.migrations.run(); // Run pending migrations
|
|
254
268
|
await db.migrations.validate(); // Validate schema vs DB
|
|
255
269
|
await db.migrations.checkTables(); // { users: true, posts: true }
|
|
270
|
+
await db.migrations.status(); // Applied migration history
|
|
271
|
+
await db.migrations.plan(); // Preview per-table migration actions
|
|
256
272
|
```
|
|
257
273
|
|
|
258
274
|
### Data-Preserving Auto Migrations
|
|
@@ -282,6 +298,9 @@ const db = await createDatabase({
|
|
|
282
298
|
| `autoMigrate` | `true` | Master switch - enables/disables automatic schema changes |
|
|
283
299
|
| `preserveData` | `true` | Copy existing data to new schema during migration |
|
|
284
300
|
| `dropTables` | `false` | Allow destructive operations (bypasses data preservation) |
|
|
301
|
+
| `dryRun` | `false` | Plan migrations without applying schema changes |
|
|
302
|
+
| `backupBeforeMigrate` | `false` | Create backup before applying schema changes |
|
|
303
|
+
| `backupPath` | `''` | Backup output path (if omitted, timestamped file is used) |
|
|
285
304
|
|
|
286
305
|
#### How Column Changes Work
|
|
287
306
|
|
|
@@ -364,7 +383,7 @@ Extend nanodb-orm with hooks that run automatically on database operations.
|
|
|
364
383
|
Official plugins are published as separate npm packages:
|
|
365
384
|
|
|
366
385
|
```bash
|
|
367
|
-
npm install @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
386
|
+
npm install @nanodb-orm/plugin-auth @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
368
387
|
```
|
|
369
388
|
|
|
370
389
|
```typescript
|
|
@@ -372,10 +391,11 @@ import { createDatabase } from 'nanodb-orm';
|
|
|
372
391
|
import { timestamps } from '@nanodb-orm/plugin-timestamps';
|
|
373
392
|
import { softDelete } from '@nanodb-orm/plugin-soft-delete';
|
|
374
393
|
import { queryLogger } from '@nanodb-orm/plugin-logger';
|
|
394
|
+
import { authPlugin } from '@nanodb-orm/plugin-auth';
|
|
375
395
|
|
|
376
396
|
const db = await createDatabase({
|
|
377
397
|
tables: { users, posts },
|
|
378
|
-
plugins: [
|
|
398
|
+
plugins: [authPlugin()],
|
|
379
399
|
});
|
|
380
400
|
```
|
|
381
401
|
|
|
@@ -384,7 +404,7 @@ To use multiple plugins, enable deterministic ordering preview:
|
|
|
384
404
|
```typescript
|
|
385
405
|
const db = await createDatabase({
|
|
386
406
|
tables: { users, posts },
|
|
387
|
-
plugins: [queryLogger(), softDelete(), timestamps()],
|
|
407
|
+
plugins: [authPlugin(), queryLogger(), softDelete(), timestamps()],
|
|
388
408
|
preview: { deterministicPluginOrdering: true },
|
|
389
409
|
});
|
|
390
410
|
```
|
|
@@ -396,6 +416,7 @@ Ordering rules in preview mode:
|
|
|
396
416
|
|
|
397
417
|
| Package | Function | Description |
|
|
398
418
|
|---------|----------|-------------|
|
|
419
|
+
| `@nanodb-orm/plugin-auth` | `authPlugin()` | Auth helpers for user/account/session/verification tables |
|
|
399
420
|
| `@nanodb-orm/plugin-timestamps` | `timestamps()` | Auto-add `createdAt` / `updatedAt` |
|
|
400
421
|
| `@nanodb-orm/plugin-logger` | `queryLogger()` | Log SQL operations with timing |
|
|
401
422
|
| `@nanodb-orm/plugin-soft-delete` | `softDelete()` | Mark as deleted instead of remove |
|
|
@@ -763,6 +784,7 @@ nanodb.cli // .studio, .setup, .reset, .status, .validate
|
|
|
763
784
|
import { timestamps } from '@nanodb-orm/plugin-timestamps';
|
|
764
785
|
import { softDelete } from '@nanodb-orm/plugin-soft-delete';
|
|
765
786
|
import { queryLogger } from '@nanodb-orm/plugin-logger';
|
|
787
|
+
import { authPlugin } from '@nanodb-orm/plugin-auth';
|
|
766
788
|
|
|
767
789
|
// Types (named imports)
|
|
768
790
|
import { type SelectModel, type InsertModel, type NanoPlugin } from 'nanodb-orm';
|
package/dist/cli.d.ts
CHANGED
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
* setup - Initialize database schema and seed data
|
|
8
8
|
* reset - Drop all tables and recreate
|
|
9
9
|
* status - Show database health and stats
|
|
10
|
+
* migrations - Show migration history status
|
|
11
|
+
* plan - Show migration plan (no schema writes)
|
|
10
12
|
* validate - Validate schema against database
|
|
11
13
|
*/
|
|
12
14
|
import { type ChildProcess } from 'child_process';
|
|
15
|
+
import type { MigrationPlan, MigrationStatus } from './types';
|
|
13
16
|
export interface StudioOptions {
|
|
14
17
|
/** Database file path (default: auto-detected or 'database.db') */
|
|
15
18
|
dbPath?: string | undefined;
|
|
@@ -24,6 +27,13 @@ export interface StatusResult {
|
|
|
24
27
|
totalTables: number;
|
|
25
28
|
totalRecords: number;
|
|
26
29
|
tables: Record<string, number>;
|
|
30
|
+
migrations: {
|
|
31
|
+
totalApplied: number;
|
|
32
|
+
byTable: Record<string, number>;
|
|
33
|
+
latestAppliedAt?: string;
|
|
34
|
+
requiresChanges: boolean;
|
|
35
|
+
pendingChanges: number;
|
|
36
|
+
};
|
|
27
37
|
errors: string[];
|
|
28
38
|
}
|
|
29
39
|
export interface ValidationResult {
|
|
@@ -32,6 +42,8 @@ export interface ValidationResult {
|
|
|
32
42
|
extraTables: string[];
|
|
33
43
|
errors: string[];
|
|
34
44
|
}
|
|
45
|
+
export type MigrationStatusResult = MigrationStatus;
|
|
46
|
+
export type MigrationPlanResult = MigrationPlan;
|
|
35
47
|
/**
|
|
36
48
|
* Launch Drizzle Studio for visual database browsing.
|
|
37
49
|
*
|
|
@@ -93,4 +105,12 @@ export declare function getStatus(silent?: boolean): Promise<StatusResult>;
|
|
|
93
105
|
* ```
|
|
94
106
|
*/
|
|
95
107
|
export declare function runValidate(silent?: boolean): Promise<ValidationResult>;
|
|
108
|
+
/**
|
|
109
|
+
* Show migration history status.
|
|
110
|
+
*/
|
|
111
|
+
export declare function runMigrationsStatus(silent?: boolean): Promise<MigrationStatusResult>;
|
|
112
|
+
/**
|
|
113
|
+
* Show migration plan without applying schema changes.
|
|
114
|
+
*/
|
|
115
|
+
export declare function runMigrationPlan(silent?: boolean): Promise<MigrationPlanResult>;
|
|
96
116
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM9D,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAMhD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA8CrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAkErE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsC3E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoBxF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiBnF"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* setup - Initialize database schema and seed data
|
|
9
9
|
* reset - Drop all tables and recreate
|
|
10
10
|
* status - Show database health and stats
|
|
11
|
+
* migrations - Show migration history status
|
|
12
|
+
* plan - Show migration plan (no schema writes)
|
|
11
13
|
* validate - Validate schema against database
|
|
12
14
|
*/
|
|
13
15
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -49,6 +51,8 @@ exports.runSetup = runSetup;
|
|
|
49
51
|
exports.runReset = runReset;
|
|
50
52
|
exports.getStatus = getStatus;
|
|
51
53
|
exports.runValidate = runValidate;
|
|
54
|
+
exports.runMigrationsStatus = runMigrationsStatus;
|
|
55
|
+
exports.runMigrationPlan = runMigrationPlan;
|
|
52
56
|
const child_process_1 = require("child_process");
|
|
53
57
|
const fs_1 = require("fs");
|
|
54
58
|
const path_1 = require("path");
|
|
@@ -159,15 +163,29 @@ async function runReset(silent = false) {
|
|
|
159
163
|
async function getStatus(silent = false) {
|
|
160
164
|
if (!silent)
|
|
161
165
|
console.log('\n📊 Database Status\n');
|
|
162
|
-
const { DatabaseSync, SchemaIntrospection } = await Promise.resolve().then(() => __importStar(require('./index')));
|
|
166
|
+
const { DatabaseSync, DatabaseMigrations, SchemaIntrospection } = await Promise.resolve().then(() => __importStar(require('./index')));
|
|
163
167
|
const health = await DatabaseSync.healthCheck();
|
|
164
168
|
const stats = SchemaIntrospection.getSchemaStats();
|
|
169
|
+
const migrationStatus = await DatabaseMigrations.status();
|
|
170
|
+
const migrationPlan = await DatabaseMigrations.plan();
|
|
171
|
+
const migrations = {
|
|
172
|
+
totalApplied: migrationStatus.totalApplied,
|
|
173
|
+
byTable: migrationStatus.byTable,
|
|
174
|
+
requiresChanges: migrationPlan.requiresChanges,
|
|
175
|
+
pendingChanges: migrationPlan.items.filter((item) => (item.action === 'create' ||
|
|
176
|
+
item.action === 'migrate_preserve' ||
|
|
177
|
+
item.action === 'recreate')).length,
|
|
178
|
+
...(migrationStatus.latestAppliedAt
|
|
179
|
+
? { latestAppliedAt: migrationStatus.latestAppliedAt }
|
|
180
|
+
: {}),
|
|
181
|
+
};
|
|
165
182
|
const result = {
|
|
166
183
|
healthy: health.healthy,
|
|
167
184
|
schemaValid: health.schemaValid,
|
|
168
185
|
totalTables: stats.totalTables,
|
|
169
186
|
totalRecords: health.totalRecords,
|
|
170
187
|
tables: health.tableCounts,
|
|
188
|
+
migrations,
|
|
171
189
|
errors: health.errors,
|
|
172
190
|
};
|
|
173
191
|
if (!silent) {
|
|
@@ -180,6 +198,17 @@ async function getStatus(silent = false) {
|
|
|
180
198
|
for (const [table, count] of Object.entries(result.tables)) {
|
|
181
199
|
console.log(` ${table}: ${count} rows`);
|
|
182
200
|
}
|
|
201
|
+
console.log('');
|
|
202
|
+
console.log('Migrations:');
|
|
203
|
+
console.log(` Applied: ${result.migrations.totalApplied}`);
|
|
204
|
+
console.log(` Pending changes: ${result.migrations.pendingChanges}`);
|
|
205
|
+
console.log(` Requires changes: ${result.migrations.requiresChanges ? 'yes' : 'no'}`);
|
|
206
|
+
if (result.migrations.latestAppliedAt) {
|
|
207
|
+
console.log(` Latest: ${result.migrations.latestAppliedAt}`);
|
|
208
|
+
}
|
|
209
|
+
for (const [table, count] of Object.entries(result.migrations.byTable)) {
|
|
210
|
+
console.log(` ${table}: ${count} migration(s)`);
|
|
211
|
+
}
|
|
183
212
|
if (result.errors.length > 0) {
|
|
184
213
|
console.log('\nErrors:');
|
|
185
214
|
for (const err of result.errors) {
|
|
@@ -237,6 +266,47 @@ async function runValidate(silent = false) {
|
|
|
237
266
|
}
|
|
238
267
|
return validation;
|
|
239
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Show migration history status.
|
|
271
|
+
*/
|
|
272
|
+
async function runMigrationsStatus(silent = false) {
|
|
273
|
+
if (!silent)
|
|
274
|
+
console.log('\n🧭 Migration Status\n');
|
|
275
|
+
const { DatabaseMigrations } = await Promise.resolve().then(() => __importStar(require('./index')));
|
|
276
|
+
const status = await DatabaseMigrations.status();
|
|
277
|
+
if (!silent) {
|
|
278
|
+
console.log(`Applied migrations: ${status.totalApplied}`);
|
|
279
|
+
if (status.latestAppliedAt) {
|
|
280
|
+
console.log(`Latest applied: ${status.latestAppliedAt}`);
|
|
281
|
+
}
|
|
282
|
+
console.log('');
|
|
283
|
+
console.log('By table:');
|
|
284
|
+
for (const [table, count] of Object.entries(status.byTable)) {
|
|
285
|
+
console.log(` ${table}: ${count}`);
|
|
286
|
+
}
|
|
287
|
+
console.log('');
|
|
288
|
+
}
|
|
289
|
+
return status;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Show migration plan without applying schema changes.
|
|
293
|
+
*/
|
|
294
|
+
async function runMigrationPlan(silent = false) {
|
|
295
|
+
if (!silent)
|
|
296
|
+
console.log('\n🧪 Migration Plan\n');
|
|
297
|
+
const { DatabaseMigrations } = await Promise.resolve().then(() => __importStar(require('./index')));
|
|
298
|
+
const plan = await DatabaseMigrations.plan();
|
|
299
|
+
if (!silent) {
|
|
300
|
+
console.log(`Requires changes: ${plan.requiresChanges ? 'yes' : 'no'}`);
|
|
301
|
+
console.log('');
|
|
302
|
+
for (const item of plan.items) {
|
|
303
|
+
console.log(`- ${item.tableName}: ${item.action}`);
|
|
304
|
+
console.log(` reason: ${item.reason}`);
|
|
305
|
+
}
|
|
306
|
+
console.log('');
|
|
307
|
+
}
|
|
308
|
+
return plan;
|
|
309
|
+
}
|
|
240
310
|
// ============================================================================
|
|
241
311
|
// Internal Helpers
|
|
242
312
|
// ============================================================================
|
|
@@ -273,6 +343,8 @@ Commands:
|
|
|
273
343
|
setup Initialize database schema and seed data
|
|
274
344
|
reset Drop all tables and recreate
|
|
275
345
|
status Show database health and stats
|
|
346
|
+
migrations Show migration history status
|
|
347
|
+
plan Show migration plan (no schema writes)
|
|
276
348
|
validate Validate schema against database
|
|
277
349
|
help Show this help message
|
|
278
350
|
|
|
@@ -285,6 +357,8 @@ Examples:
|
|
|
285
357
|
nanodb studio --port 3000
|
|
286
358
|
nanodb setup
|
|
287
359
|
nanodb status
|
|
360
|
+
nanodb migrations
|
|
361
|
+
nanodb plan
|
|
288
362
|
`;
|
|
289
363
|
async function main() {
|
|
290
364
|
const args = process.argv.slice(2);
|
|
@@ -321,6 +395,12 @@ async function main() {
|
|
|
321
395
|
case 'status':
|
|
322
396
|
await getStatus();
|
|
323
397
|
break;
|
|
398
|
+
case 'migrations':
|
|
399
|
+
await runMigrationsStatus();
|
|
400
|
+
break;
|
|
401
|
+
case 'plan':
|
|
402
|
+
await runMigrationPlan();
|
|
403
|
+
break;
|
|
324
404
|
case 'validate': {
|
|
325
405
|
const result = await runValidate();
|
|
326
406
|
if (!result.isValid)
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { drizzle } from 'drizzle-orm/libsql';
|
|
2
2
|
type DrizzleInstance = ReturnType<typeof drizzle>;
|
|
3
|
+
export type ConnectionProfile = 'default' | 'serverless' | 'long_lived';
|
|
3
4
|
export interface ConnectionOverride {
|
|
4
5
|
connectionUrl?: string;
|
|
5
6
|
authToken?: string;
|
|
6
7
|
forceLocal?: boolean;
|
|
7
8
|
databasePath?: string;
|
|
9
|
+
profile?: ConnectionProfile;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Database connection factory with optional singleton caching.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAClD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAyC;IAE/D,+DAA+D;WAClD,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAcpD,uCAAuC;mBAClB,gBAAgB;IAgCrC,uDAAuD;WAC1C,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBpF,yCAAyC;IACzC,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
|
package/dist/core/connection.js
CHANGED
|
@@ -31,7 +31,7 @@ class DatabaseConnection {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
/** Create a new database connection */
|
|
34
|
-
static async createConnection() {
|
|
34
|
+
static async createConnection(profile = 'default') {
|
|
35
35
|
// Test environment: use isolated local database
|
|
36
36
|
if (process.env.NODE_ENV === 'test') {
|
|
37
37
|
const dbName = process.env.JEST_WORKER_ID
|
|
@@ -41,7 +41,7 @@ class DatabaseConnection {
|
|
|
41
41
|
}
|
|
42
42
|
// Force local mode: use DATABASE_PATH or default
|
|
43
43
|
if (process.env.FORCE_LOCAL_DB === 'true') {
|
|
44
|
-
const dbPath = process.env.DATABASE_PATH ?? 'database.db';
|
|
44
|
+
const dbPath = process.env.DATABASE_PATH ?? (profile === 'serverless' ? ':memory:' : 'database.db');
|
|
45
45
|
return (0, libsql_1.drizzle)((0, client_1.createClient)({ url: `file:${dbPath}` }));
|
|
46
46
|
}
|
|
47
47
|
// Production: try Turso first, fallback to local SQLite
|
|
@@ -53,7 +53,7 @@ class DatabaseConnection {
|
|
|
53
53
|
}));
|
|
54
54
|
}
|
|
55
55
|
catch {
|
|
56
|
-
const dbPath = process.env.DATABASE_PATH ?? 'database.db';
|
|
56
|
+
const dbPath = process.env.DATABASE_PATH ?? (profile === 'serverless' ? ':memory:' : 'database.db');
|
|
57
57
|
return (0, libsql_1.drizzle)((0, client_1.createClient)({ url: `file:${dbPath}` }));
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -66,10 +66,10 @@ class DatabaseConnection {
|
|
|
66
66
|
return (0, libsql_1.drizzle)((0, client_1.createClient)(clientConfig));
|
|
67
67
|
}
|
|
68
68
|
if (override?.forceLocal || override?.databasePath) {
|
|
69
|
-
const dbPath = override.databasePath ?? 'database.db';
|
|
69
|
+
const dbPath = override.databasePath ?? (override.profile === 'serverless' ? ':memory:' : 'database.db');
|
|
70
70
|
return (0, libsql_1.drizzle)((0, client_1.createClient)({ url: `file:${dbPath}` }));
|
|
71
71
|
}
|
|
72
|
-
return this.createConnection();
|
|
72
|
+
return this.createConnection(override?.profile ?? 'default');
|
|
73
73
|
}
|
|
74
74
|
/** Reset the connection (for testing) */
|
|
75
75
|
static reset() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAC7C,2CAA8C;AAC9C,qCAA6C;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -124,30 +124,33 @@ export declare const errors: {
|
|
|
124
124
|
* await cli.studio({ port: 3000 });
|
|
125
125
|
* ```
|
|
126
126
|
*/
|
|
127
|
-
import { launchStudio, runSetup, runReset, getStatus, runValidate } from './cli';
|
|
127
|
+
import { launchStudio, runSetup, runReset, getStatus, runMigrationsStatus, runMigrationPlan, runValidate } from './cli';
|
|
128
128
|
export declare const cli: {
|
|
129
129
|
studio: typeof launchStudio;
|
|
130
130
|
setup: typeof runSetup;
|
|
131
131
|
reset: typeof runReset;
|
|
132
132
|
status: typeof getStatus;
|
|
133
|
+
migrations: typeof runMigrationsStatus;
|
|
134
|
+
plan: typeof runMigrationPlan;
|
|
133
135
|
validate: typeof runValidate;
|
|
134
136
|
};
|
|
135
137
|
export { createDatabase, initializeDatabase } from './init';
|
|
136
138
|
export { createReplicatedDatabase, } from './replicas';
|
|
137
139
|
export type { CreateDatabaseConfig, NanoDatabase, Hooks, SchemaUtils, MigrationUtils, PluginUtils, } from './init';
|
|
138
140
|
export type { ReplicatedDatabase, ReplicatedDatabaseConfig, ReplicaConnection, ReadStrategy, } from './replicas';
|
|
139
|
-
export type { Table, AnyTable, Schema, SelectModel, InsertModel, SchemaModels, SchemaInsertModels, DrizzleDB, NanoPlugin, HookFn, ErrorHookFn, LifecycleHookFn, ColumnMetadata, ForeignKeyReference, SchemaData, MigrationConfig, DatabaseConfig, DatabaseInfo, HealthCheck, SyncResult, SchemaValidation, ForeignKey, TableMetadata, QueryResult, DatabaseClient, DrizzleTable, DrizzleColumn, } from './types';
|
|
140
|
-
export type { StudioOptions, StatusResult, ValidationResult, } from './cli';
|
|
141
|
+
export type { Table, AnyTable, Schema, SelectModel, InsertModel, SchemaModels, SchemaInsertModels, DrizzleDB, NanoPlugin, HookFn, ErrorHookFn, LifecycleHookFn, ColumnMetadata, ForeignKeyReference, SchemaData, MigrationConfig, MigrationStatus, AppliedMigration, MigrationPlan, MigrationPlanItem, MigrationPlanAction, DatabaseConfig, DatabaseInfo, HealthCheck, SyncResult, SchemaValidation, ForeignKey, TableMetadata, QueryResult, DatabaseClient, DrizzleTable, DrizzleColumn, } from './types';
|
|
142
|
+
export type { StudioOptions, StatusResult, MigrationStatusResult, MigrationPlanResult, ValidationResult, } from './cli';
|
|
141
143
|
export type { InferSelectModel, InferInsertModel, } from 'drizzle-orm';
|
|
142
144
|
export { DatabaseError, SchemaError, ConnectionError, MigrationError, SeedError, parseDbError, } from './types/errors';
|
|
143
145
|
export { DatabaseConnection } from './core/connection';
|
|
146
|
+
export type { ConnectionProfile } from './core/connection';
|
|
144
147
|
export { getDatabaseConfig } from './core/config';
|
|
145
148
|
export { DatabaseSync } from './utils/sync';
|
|
146
149
|
export { DatabaseMigrations } from './utils/migrations';
|
|
147
150
|
export { DatabaseSeeds } from './utils/seeds';
|
|
148
151
|
export { SchemaIntrospection } from './utils/schema-introspection';
|
|
149
152
|
export { transaction, batch, recreateTable, migrateTablePreservingData } from './utils/transactions';
|
|
150
|
-
export { launchStudio, runSetup, runReset, getStatus, runValidate, } from './cli';
|
|
153
|
+
export { launchStudio, runSetup, runReset, getStatus, runMigrationsStatus, runMigrationPlan, runValidate, } from './cli';
|
|
151
154
|
export declare const table: import("drizzle-orm/sqlite-core").SQLiteTableFn<undefined>;
|
|
152
155
|
export { sqliteTable };
|
|
153
156
|
export declare const integer: typeof drizzleInteger;
|
|
@@ -234,6 +237,8 @@ declare const nanodb: {
|
|
|
234
237
|
setup: typeof runSetup;
|
|
235
238
|
reset: typeof runReset;
|
|
236
239
|
status: typeof getStatus;
|
|
240
|
+
migrations: typeof runMigrationsStatus;
|
|
241
|
+
plan: typeof runMigrationPlan;
|
|
237
242
|
validate: typeof runValidate;
|
|
238
243
|
};
|
|
239
244
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,WAAW,EACX,OAAO,IAAI,cAAc,EACzB,IAAI,IAAI,WAAW,EACnB,IAAI,IAAI,WAAW,EACnB,IAAI,IAAI,WAAW,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAOL,IAAI,IAAI,WAAW,EACnB,KAAK,IAAI,YAAY,EACrB,OAAO,IAAI,cAAc,EACzB,GAAG,IAAI,UAAU,EACjB,EAAE,IAAI,SAAS,EACf,GAAG,IAAI,UAAU,EACjB,OAAO,IAAI,cAAc,EACzB,OAAO,IAAI,cAAc,EACzB,UAAU,IAAI,iBAAiB,EAC/B,MAAM,IAAI,aAAa,EACvB,SAAS,IAAI,gBAAgB,EAC7B,IAAI,IAAI,WAAW,EACnB,GAAG,IAAI,UAAU,EACjB,KAAK,IAAI,YAAY,EACrB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EAClB,MAAM,aAAa,CAAC;AAMrB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCjB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACZ,MAAM,OAAO,CAAC;AAEf,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|