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.
Files changed (39) hide show
  1. package/README.md +82 -60
  2. package/dist/cli.d.ts +20 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +81 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/connection.d.ts +2 -0
  7. package/dist/core/connection.d.ts.map +1 -1
  8. package/dist/core/connection.js +5 -5
  9. package/dist/core/connection.js.map +1 -1
  10. package/dist/index.d.ts +9 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +6 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/init.d.ts +9 -1
  15. package/dist/init.d.ts.map +1 -1
  16. package/dist/init.js +87 -22
  17. package/dist/init.js.map +1 -1
  18. package/dist/types/index.d.ts +28 -0
  19. package/dist/types/index.d.ts.map +1 -1
  20. package/dist/utils/migrations.d.ts +5 -1
  21. package/dist/utils/migrations.d.ts.map +1 -1
  22. package/dist/utils/migrations.js +176 -51
  23. package/dist/utils/migrations.js.map +1 -1
  24. package/dist/utils/schema-introspection.d.ts.map +1 -1
  25. package/dist/utils/schema-introspection.js +2 -1
  26. package/dist/utils/schema-introspection.js.map +1 -1
  27. package/dist/utils/seeds.js +9 -16
  28. package/dist/utils/seeds.js.map +1 -1
  29. package/dist/utils/sql-safety.d.ts +2 -0
  30. package/dist/utils/sql-safety.d.ts.map +1 -0
  31. package/dist/utils/sql-safety.js +11 -0
  32. package/dist/utils/sql-safety.js.map +1 -0
  33. package/dist/utils/sync.d.ts.map +1 -1
  34. package/dist/utils/sync.js +4 -2
  35. package/dist/utils/sync.js.map +1 -1
  36. package/dist/utils/transactions.d.ts.map +1 -1
  37. package/dist/utils/transactions.js +12 -8
  38. package/dist/utils/transactions.js.map +1 -1
  39. 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
- ![Drizzle Studio](https://orm.drizzle.team/images/drizzle-studio.png)
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
- ### 1. Define Your Schema
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
- ### 2. Create Database
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
- ### 3. Query Your Data
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
+ ![Drizzle Studio](https://orm.drizzle.team/images/drizzle-studio.png)
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: [timestamps()],
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;;;;;;;;;GASG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAQzD,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,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;AAMD;;;;;;;;;;;;;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,CAsCrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsC3E"}
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;AAElD,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;CACvB;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;IA4BrC,uDAAuD;WAC1C,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpF,yCAAyC;IACzC,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
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"}
@@ -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":"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"}
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
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}