sqlew 4.0.5 → 4.1.1
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/CHANGELOG.md +1817 -1782
- package/README.md +409 -468
- package/assets/claude-md-snippets/plan-mode-integration.md +17 -6
- package/assets/config.example.toml +282 -284
- package/assets/sample-agents/README.md +36 -40
- package/assets/sample-agents/sqlew-architect.md +321 -322
- package/assets/sample-agents/sqlew-researcher.md +292 -293
- package/assets/sample-agents/sqlew-scrum-master.md +286 -287
- package/assets/sample-commands/README.md +56 -57
- package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +33 -26
- package/dist/cli/hooks/check-completion.d.ts +19 -0
- package/dist/cli/hooks/check-completion.d.ts.map +1 -0
- package/dist/cli/hooks/check-completion.js +104 -0
- package/dist/cli/hooks/check-completion.js.map +1 -0
- package/dist/cli/hooks/init-hooks.d.ts +35 -0
- package/dist/cli/hooks/init-hooks.d.ts.map +1 -0
- package/dist/cli/hooks/init-hooks.js +425 -0
- package/dist/cli/hooks/init-hooks.js.map +1 -0
- package/dist/cli/hooks/mark-done.d.ts +25 -0
- package/dist/cli/hooks/mark-done.d.ts.map +1 -0
- package/dist/cli/hooks/mark-done.js +128 -0
- package/dist/cli/hooks/mark-done.js.map +1 -0
- package/dist/cli/hooks/plan-id-utils.d.ts +83 -0
- package/dist/cli/hooks/plan-id-utils.d.ts.map +1 -0
- package/dist/cli/hooks/plan-id-utils.js +183 -0
- package/dist/cli/hooks/plan-id-utils.js.map +1 -0
- package/dist/cli/hooks/save.d.ts +23 -0
- package/dist/cli/hooks/save.d.ts.map +1 -0
- package/dist/cli/hooks/save.js +90 -0
- package/dist/cli/hooks/save.js.map +1 -0
- package/dist/cli/hooks/stdin-parser.d.ts +139 -0
- package/dist/cli/hooks/stdin-parser.d.ts.map +1 -0
- package/dist/cli/hooks/stdin-parser.js +127 -0
- package/dist/cli/hooks/stdin-parser.js.map +1 -0
- package/dist/cli/hooks/suggest.d.ts +19 -0
- package/dist/cli/hooks/suggest.d.ts.map +1 -0
- package/dist/cli/hooks/suggest.js +157 -0
- package/dist/cli/hooks/suggest.js.map +1 -0
- package/dist/cli/hooks/track-plan.d.ts +36 -0
- package/dist/cli/hooks/track-plan.d.ts.map +1 -0
- package/dist/cli/hooks/track-plan.js +152 -0
- package/dist/cli/hooks/track-plan.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +56 -16
- package/dist/cli.js.map +1 -1
- package/dist/config/global-config.d.ts +187 -0
- package/dist/config/global-config.d.ts.map +1 -0
- package/dist/config/global-config.js +206 -0
- package/dist/config/global-config.js.map +1 -0
- package/dist/config/loader.d.ts +42 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +96 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -1
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +59 -59
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js.map +1 -1
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +33 -33
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.js +7 -7
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.js.map +1 -1
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.js +11 -11
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.js.map +1 -1
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js +10 -10
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js.map +1 -1
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js +7 -7
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js.map +1 -1
- package/dist/database/migrations/v4/20251128000000_drop_all_views.js +8 -8
- package/dist/database/migrations/v4/20251128000000_drop_all_views.js.map +1 -1
- package/dist/database/operations/queries.d.ts.map +1 -1
- package/dist/database/operations/queries.js +11 -2
- package/dist/database/operations/queries.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/init-agents.js +0 -1
- package/dist/init-agents.js.map +1 -1
- package/dist/init-skills.d.ts +4 -3
- package/dist/init-skills.d.ts.map +1 -1
- package/dist/init-skills.js +10 -3
- package/dist/init-skills.js.map +1 -1
- package/dist/server/setup.d.ts +8 -0
- package/dist/server/setup.d.ts.map +1 -1
- package/dist/server/setup.js +141 -21
- package/dist/server/setup.js.map +1 -1
- package/dist/sync-agents.d.ts.map +1 -1
- package/dist/sync-agents.js +48 -3
- package/dist/sync-agents.js.map +1 -1
- package/dist/sync-commands.d.ts.map +1 -1
- package/dist/sync-commands.js +43 -3
- package/dist/sync-commands.js.map +1 -1
- package/dist/tools/constraints/actions/get.d.ts.map +1 -1
- package/dist/tools/constraints/actions/get.js +5 -8
- package/dist/tools/constraints/actions/get.js.map +1 -1
- package/dist/tools/constraints/help/help.d.ts.map +1 -1
- package/dist/tools/constraints/help/help.js +1 -6
- package/dist/tools/constraints/help/help.js.map +1 -1
- package/dist/tools/context/actions/get.d.ts.map +1 -1
- package/dist/tools/context/actions/get.js.map +1 -1
- package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
- package/dist/tools/context/actions/search-layer.js +5 -3
- package/dist/tools/context/actions/search-layer.js.map +1 -1
- package/dist/tools/context/actions/set-from-policy.d.ts +2 -1
- package/dist/tools/context/actions/set-from-policy.d.ts.map +1 -1
- package/dist/tools/context/actions/set-from-policy.js.map +1 -1
- package/dist/tools/context/help/help.d.ts.map +1 -1
- package/dist/tools/context/help/help.js +1 -7
- package/dist/tools/context/help/help.js.map +1 -1
- package/dist/tools/context/internal/queries.d.ts.map +1 -1
- package/dist/tools/context/internal/queries.js +5 -2
- package/dist/tools/context/internal/queries.js.map +1 -1
- package/dist/tools/context/types.d.ts +1 -1
- package/dist/tools/context/types.d.ts.map +1 -1
- package/dist/tools/files/actions/get.d.ts.map +1 -1
- package/dist/tools/files/actions/get.js +4 -6
- package/dist/tools/files/actions/get.js.map +1 -1
- package/dist/tools/files/help/help.d.ts.map +1 -1
- package/dist/tools/files/help/help.js +1 -6
- package/dist/tools/files/help/help.js.map +1 -1
- package/dist/tools/suggest/help/constraint-help.d.ts.map +1 -1
- package/dist/tools/suggest/help/constraint-help.js +0 -2
- package/dist/tools/suggest/help/constraint-help.js.map +1 -1
- package/dist/tools/suggest/internal/constraint-queries.d.ts.map +1 -1
- package/dist/tools/suggest/internal/constraint-queries.js +12 -5
- package/dist/tools/suggest/internal/constraint-queries.js.map +1 -1
- package/dist/tools/suggest/internal/queries.js +2 -2
- package/dist/tools/suggest/internal/queries.js.map +1 -1
- package/dist/tools/tasks/help/help.d.ts.map +1 -1
- package/dist/tools/tasks/help/help.js +0 -6
- package/dist/tools/tasks/help/help.js.map +1 -1
- package/dist/tools/tasks/help/use-case.d.ts.map +1 -1
- package/dist/tools/tasks/help/use-case.js +0 -1
- package/dist/tools/tasks/help/use-case.js.map +1 -1
- package/dist/tools/tasks/watcher/status.d.ts.map +1 -1
- package/dist/tools/tasks/watcher/status.js +5 -1
- package/dist/tools/tasks/watcher/status.js.map +1 -1
- package/dist/types/decision/params.d.ts +7 -6
- package/dist/types/decision/params.d.ts.map +1 -1
- package/dist/types/decision/templates.d.ts +3 -2
- package/dist/types/decision/templates.d.ts.map +1 -1
- package/dist/types/view-entities.d.ts +2 -1
- package/dist/types/view-entities.d.ts.map +1 -1
- package/dist/types.d.ts +19 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/enum-converter.d.ts +72 -0
- package/dist/utils/enum-converter.d.ts.map +1 -0
- package/dist/utils/enum-converter.js +76 -0
- package/dist/utils/enum-converter.js.map +1 -0
- package/dist/utils/hook-queue.d.ts +81 -0
- package/dist/utils/hook-queue.d.ts.map +1 -0
- package/dist/utils/hook-queue.js +156 -0
- package/dist/utils/hook-queue.js.map +1 -0
- package/dist/utils/project-root.d.ts +9 -2
- package/dist/utils/project-root.d.ts.map +1 -1
- package/dist/utils/project-root.js +16 -2
- package/dist/utils/project-root.js.map +1 -1
- package/dist/utils/tag-parser.d.ts.map +1 -1
- package/dist/utils/tag-parser.js +6 -0
- package/dist/utils/tag-parser.js.map +1 -1
- package/dist/utils/universal-knex.js +3 -3
- package/dist/utils/universal-knex.js.map +1 -1
- package/dist/utils/validators.d.ts +1 -1
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/dist/utils/vcs-adapter.d.ts +44 -0
- package/dist/utils/vcs-adapter.d.ts.map +1 -1
- package/dist/utils/vcs-adapter.js +88 -0
- package/dist/utils/vcs-adapter.js.map +1 -1
- package/dist/utils/view-queries.d.ts.map +1 -1
- package/dist/utils/view-queries.js +9 -19
- package/dist/utils/view-queries.js.map +1 -1
- package/dist/watcher/base-watcher.d.ts +69 -0
- package/dist/watcher/base-watcher.d.ts.map +1 -0
- package/dist/watcher/base-watcher.js +130 -0
- package/dist/watcher/base-watcher.js.map +1 -0
- package/dist/watcher/index.d.ts +3 -0
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +2 -0
- package/dist/watcher/index.js.map +1 -1
- package/dist/watcher/queue-watcher.d.ts +64 -0
- package/dist/watcher/queue-watcher.d.ts.map +1 -0
- package/dist/watcher/queue-watcher.js +187 -0
- package/dist/watcher/queue-watcher.js.map +1 -0
- package/docs/ADR_CONCEPTS.md +140 -0
- package/docs/CONFIGURATION.md +922 -925
- package/docs/CROSS_DATABASE.md +153 -0
- package/docs/DATABASE_AUTH.md +70 -356
- package/docs/HOOKS_GUIDE.md +159 -0
- package/docs/SLASH_COMMANDS.md +329 -337
- package/docs/TASK_SYSTEM_DEPRECATED.md +88 -0
- package/docs/changelogs/CHANGELOG_ARCHIVE_v3.4_and_older.md +293 -296
- package/docs/cli/DATA_EXPORT_IMPORT.md +699 -700
- package/docs/cli/README.md +276 -277
- package/package.json +123 -124
- package/docs/ACCEPTANCE_CRITERIA.md +0 -625
- package/docs/AI_AGENT_GUIDE.md +0 -299
- package/docs/ARCHITECTURE.md +0 -167
- package/docs/AUTO_FILE_TRACKING.md +0 -841
- package/docs/BATCH_VALIDATION.md +0 -617
- package/docs/BEST_PRACTICES.md +0 -168
- package/docs/CONSTRAINT_INTELLIGENCE.md +0 -339
- package/docs/DECISION_CONTEXT.md +0 -697
- package/docs/DECISION_INTELLIGENCE.md +0 -605
- package/docs/GIT_AWARE_AUTO_COMPLETE.md +0 -646
- package/docs/MIGRATION_GUIDE_V3.9.0.md +0 -371
- package/docs/SHARED_CONCEPTS.md +0 -225
- package/docs/SPECIALIZED_AGENTS.md +0 -126
- package/docs/TASK_ACTIONS.md +0 -1177
- package/docs/TASK_OVERVIEW.md +0 -452
- package/docs/TASK_PRUNING.md +0 -594
- package/docs/TOOL_REFERENCE.md +0 -1077
- package/docs/TOOL_SELECTION.md +0 -83
- package/docs/WORKFLOWS.md +0 -941
package/docs/cli/README.md
CHANGED
|
@@ -1,277 +1,276 @@
|
|
|
1
|
-
# sqlew CLI Mode
|
|
2
|
-
|
|
3
|
-
> Command-line tools for database migration and project data export/import
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
sqlew provides CLI commands for advanced database operations that complement the main MCP server functionality. These
|
|
8
|
-
commands are useful for database administration, backup/restore, and cross-project data migration.
|
|
9
|
-
|
|
10
|
-
> **⚠️ Important**: Database CLI commands must be run via `npm run` from the project directory.
|
|
11
|
-
> `npx` is not supported for database operations.
|
|
12
|
-
|
|
13
|
-
## What is CLI Mode?
|
|
14
|
-
|
|
15
|
-
While the primary use of sqlew is as an **MCP server** (integrated with Claude Code via `.mcp.json`), it also provides
|
|
16
|
-
standalone **CLI commands** for:
|
|
17
|
-
|
|
18
|
-
- **Database Migration** - Generate SQL dumps for SQLite, MySQL, PostgreSQL migration
|
|
19
|
-
- **Project Export/Import** - Share project data across databases or team members
|
|
20
|
-
- **Backup/Restore** - Create SQL backups with schema and data
|
|
21
|
-
|
|
22
|
-
## MCP Server vs CLI Mode
|
|
23
|
-
|
|
24
|
-
| Feature | MCP Server (via `.mcp.json`) | CLI Mode |
|
|
25
|
-
|-----------------|----------------------------------------|----------------------------------------------|
|
|
26
|
-
| **Primary Use** | AI agent context management | Database administration |
|
|
27
|
-
| **Setup** | `.mcp.json` configuration | Per-project npm install |
|
|
28
|
-
| **Commands** | MCP tools (decision, task, file, etc.) | CLI commands (db:dump, db:export, db:import) |
|
|
29
|
-
| **When to Use** | Daily AI development workflow | Database migration, backup, data sharing |
|
|
30
|
-
|
|
31
|
-
## Usage
|
|
32
|
-
|
|
33
|
-
### Within mcp-sqlew Project (Development)
|
|
34
|
-
|
|
35
|
-
Use npm scripts with `--` to pass arguments:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# Generate MySQL dump
|
|
39
|
-
npm run db:dump -- mysql backup.sql
|
|
40
|
-
|
|
41
|
-
# Export project to JSON
|
|
42
|
-
npm run db:export -- data.json project=myproject
|
|
43
|
-
|
|
44
|
-
# Import from JSON
|
|
45
|
-
npm run db:import -- data.json
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### In Projects with sqlew as Dependency
|
|
49
|
-
|
|
50
|
-
Add to your `package.json`:
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{
|
|
54
|
-
"scripts": {
|
|
55
|
-
"db:dump": "node node_modules/sqlew/dist/cli.js db:dump",
|
|
56
|
-
"db:export": "node node_modules/sqlew/dist/cli.js db:export",
|
|
57
|
-
"db:import": "node node_modules/sqlew/dist/cli.js db:import"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Then use:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
npm run db:dump -- mysql backup.sql
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Available Commands
|
|
69
|
-
|
|
70
|
-
### 1. `db:dump` - SQL Database Migration
|
|
71
|
-
|
|
72
|
-
Generate complete SQL dumps (schema + data) for database migration or backup.
|
|
73
|
-
|
|
74
|
-
**Use Cases**:
|
|
75
|
-
|
|
76
|
-
- Full database backup with schema
|
|
77
|
-
- Cross-database migration (SQLite → MySQL/PostgreSQL)
|
|
78
|
-
- Development → Production deployment
|
|
79
|
-
|
|
80
|
-
**Quick Example**:
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# Generate MySQL dump (positional format argument)
|
|
84
|
-
npm run db:dump -- mysql backup.sql
|
|
85
|
-
|
|
86
|
-
# Generate PostgreSQL dump
|
|
87
|
-
npm run db:dump -- postgresql backup.sql
|
|
88
|
-
|
|
89
|
-
# MySQL from PostgreSQL source
|
|
90
|
-
npm run db:dump -- mysql backup.sql from=postgresql
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**📖 Full Documentation**: [DATABASE_MIGRATION.md](DATABASE_MIGRATION.md)
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
### 2. `db:export` - Project Data Export
|
|
98
|
-
|
|
99
|
-
Export project data to JSON format for sharing or multi-project consolidation.
|
|
100
|
-
|
|
101
|
-
**Use Cases**:
|
|
102
|
-
|
|
103
|
-
- Share context with team members
|
|
104
|
-
- Move projects between different databases
|
|
105
|
-
- Consolidate multiple projects into one database
|
|
106
|
-
|
|
107
|
-
**Quick Example**:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
# Export specific project
|
|
111
|
-
npm run db:export -- project.json project=my-project
|
|
112
|
-
|
|
113
|
-
# Export all projects
|
|
114
|
-
npm run db:export -- all-projects.json
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
**📖 Full Documentation**: [DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md#export-command)
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
### 3. `db:import` - Project Data Import
|
|
122
|
-
|
|
123
|
-
Import project data from JSON export files.
|
|
124
|
-
|
|
125
|
-
**Use Cases**:
|
|
126
|
-
|
|
127
|
-
- Import shared project context
|
|
128
|
-
- Merge multiple projects into one database
|
|
129
|
-
- Migrate projects to a new database (different machine or DB type)
|
|
130
|
-
|
|
131
|
-
**Quick Example**:
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
# Import from JSON export
|
|
135
|
-
npm run db:import -- project.json
|
|
136
|
-
|
|
137
|
-
# Import with custom name
|
|
138
|
-
npm run db:import -- project.json project-name=new-name
|
|
139
|
-
|
|
140
|
-
# Dry-run validation
|
|
141
|
-
npm run db:import -- project.json dry-run=true
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**📖 Full Documentation**: [DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md#import-command)
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Recommended Data Migration Workflow
|
|
149
|
-
|
|
150
|
-
### Cross-Database Migration (Recommended: JSON)
|
|
151
|
-
|
|
152
|
-
For migrations between different database systems (e.g., SQLite to MySQL, PostgreSQL to MySQL), **use JSON format**:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# Step 1: Export from source database
|
|
156
|
-
npm run db:export -- backup.json
|
|
157
|
-
|
|
158
|
-
# Step 2: Configure target database connection
|
|
159
|
-
# (Update your .sqlew/config.toml or environment variables)
|
|
160
|
-
|
|
161
|
-
# Step 3: Import to target database
|
|
162
|
-
npm run db:import -- backup.json
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Why JSON for cross-database migration?**
|
|
166
|
-
- Database-agnostic format - no SQL syntax differences
|
|
167
|
-
- Automatic ID remapping handles foreign key relationships
|
|
168
|
-
- Preserves all data integrity across different RDBMS
|
|
169
|
-
|
|
170
|
-
### SQL Dump (Same-RDBMS Only)
|
|
171
|
-
|
|
172
|
-
SQL dump (`db:dump`) is designed for **same-database-type operations only**:
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
# SQLite backup (restore to SQLite)
|
|
176
|
-
npm run db:dump -- sqlite backup.sql
|
|
177
|
-
|
|
178
|
-
# MySQL backup (restore to MySQL)
|
|
179
|
-
npm run db:dump -- mysql backup.sql
|
|
180
|
-
|
|
181
|
-
# PostgreSQL backup (restore to PostgreSQL)
|
|
182
|
-
npm run db:dump -- postgresql backup.sql
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
**Note**: SQL dump does NOT support cross-database migrations (e.g., SQLite to MySQL). The generated SQL contains database-specific syntax that may not be compatible with other RDBMS.
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## Quick Comparison: When to Use Which Command
|
|
190
|
-
|
|
191
|
-
| Scenario | Use Command | Restore Capability |
|
|
192
|
-
|-----------------------------------------------|---------------------------|----------------------------|
|
|
193
|
-
| **Full database backup (same RDBMS)** | `db:dump` | Full restore |
|
|
194
|
-
| **Cross-database migration** (SQLite -> MySQL)| `db:export` / `db:import` | Full restore via JSON |
|
|
195
|
-
| **Share project with team** | `db:export` / `db:import` | Skips if project exists |
|
|
196
|
-
| **Consolidate multiple projects** | `db:export` / `db:import` | Skips if project exists |
|
|
197
|
-
| **Backup/restore same database** | `db:dump` | Full restore |
|
|
198
|
-
|
|
199
|
-
**⚠️ Important**: `db:export`/`db:import` uses `--skip-if-exists=true` by default, so it's NOT suitable for
|
|
200
|
-
backup/restore to the same database. Use `db:dump` for proper backup/restore.
|
|
201
|
-
|
|
202
|
-
## Common Workflows
|
|
203
|
-
|
|
204
|
-
### Workflow 1: Full Database Backup
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# Create SQL backup with schema + data
|
|
208
|
-
npm run db:dump -- sqlite backup-$(date +%Y%m%d).sql
|
|
209
|
-
|
|
210
|
-
# Or simple SQLite file copy
|
|
211
|
-
cp .sqlew/sqlew.db .sqlew/backup-$(date +%Y%m%d).db
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### Workflow 2: Share the Project with a Team Member
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# Developer A: Export project
|
|
218
|
-
npm run db:export -- feature-x.json project=feature-x
|
|
219
|
-
|
|
220
|
-
# Developer B: Import project (in their own database)
|
|
221
|
-
npm run db:import -- feature-x.json
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
### Workflow 3: Migrate to MySQL from SQLite
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
# Step 1: Generate MySQL dump
|
|
228
|
-
npm run db:dump -- mysql migrate-to-mysql.sql
|
|
229
|
-
|
|
230
|
-
# Step 2: Create MySQL database
|
|
231
|
-
mysql -e "CREATE DATABASE sqlew_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
|
232
|
-
|
|
233
|
-
# Step 3: Import dump
|
|
234
|
-
mysql -u user -p sqlew_db < migrate-to-mysql.sql
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Workflow 4: Consolidate Multiple Projects
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
# Export from each project
|
|
241
|
-
npm run db:export -- /tmp/a.json project=project-a
|
|
242
|
-
npm run db:export -- /tmp/b.json project=project-b
|
|
243
|
-
|
|
244
|
-
# Import all to shared database
|
|
245
|
-
npm run db:import -- /tmp/a.json
|
|
246
|
-
npm run db:import -- /tmp/b.json
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Getting Help
|
|
250
|
-
|
|
251
|
-
Show command-specific help:
|
|
252
|
-
|
|
253
|
-
```bash
|
|
254
|
-
npm run db:dump -- --help
|
|
255
|
-
npm run db:export -- --help
|
|
256
|
-
npm run db:import -- --help
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
## Detailed Documentation
|
|
260
|
-
|
|
261
|
-
- **[DATABASE_MIGRATION.md](DATABASE_MIGRATION.md)** - Complete `db:dump` reference
|
|
262
|
-
- SQL dump generation for all database types
|
|
263
|
-
- Data type mappings
|
|
264
|
-
- Transaction safety
|
|
265
|
-
- Conflict resolution
|
|
266
|
-
|
|
267
|
-
- **[DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md)** - Complete `db:export`/`db:import` reference
|
|
268
|
-
- JSON export/import system
|
|
269
|
-
- ID remapping strategy
|
|
270
|
-
- Multi-project consolidation
|
|
271
|
-
- Use cases and examples
|
|
272
|
-
|
|
273
|
-
## See Also
|
|
274
|
-
|
|
275
|
-
- [Main README](../../README.md) - MCP server setup and usage
|
|
276
|
-
- [Configuration Guide](../CONFIGURATION.md) - Database configuration options
|
|
277
|
-
- [Architecture](../ARCHITECTURE.md) - Technical architecture overview
|
|
1
|
+
# sqlew CLI Mode
|
|
2
|
+
|
|
3
|
+
> Command-line tools for database migration and project data export/import
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
sqlew provides CLI commands for advanced database operations that complement the main MCP server functionality. These
|
|
8
|
+
commands are useful for database administration, backup/restore, and cross-project data migration.
|
|
9
|
+
|
|
10
|
+
> **⚠️ Important**: Database CLI commands must be run via `npm run` from the project directory.
|
|
11
|
+
> `npx` is not supported for database operations.
|
|
12
|
+
|
|
13
|
+
## What is CLI Mode?
|
|
14
|
+
|
|
15
|
+
While the primary use of sqlew is as an **MCP server** (integrated with Claude Code via `.mcp.json`), it also provides
|
|
16
|
+
standalone **CLI commands** for:
|
|
17
|
+
|
|
18
|
+
- **Database Migration** - Generate SQL dumps for SQLite, MySQL, PostgreSQL migration
|
|
19
|
+
- **Project Export/Import** - Share project data across databases or team members
|
|
20
|
+
- **Backup/Restore** - Create SQL backups with schema and data
|
|
21
|
+
|
|
22
|
+
## MCP Server vs CLI Mode
|
|
23
|
+
|
|
24
|
+
| Feature | MCP Server (via `.mcp.json`) | CLI Mode |
|
|
25
|
+
|-----------------|----------------------------------------|----------------------------------------------|
|
|
26
|
+
| **Primary Use** | AI agent context management | Database administration |
|
|
27
|
+
| **Setup** | `.mcp.json` configuration | Per-project npm install |
|
|
28
|
+
| **Commands** | MCP tools (decision, task, file, etc.) | CLI commands (db:dump, db:export, db:import) |
|
|
29
|
+
| **When to Use** | Daily AI development workflow | Database migration, backup, data sharing |
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
### Within mcp-sqlew Project (Development)
|
|
34
|
+
|
|
35
|
+
Use npm scripts with `--` to pass arguments:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Generate MySQL dump
|
|
39
|
+
npm run db:dump -- mysql backup.sql
|
|
40
|
+
|
|
41
|
+
# Export project to JSON
|
|
42
|
+
npm run db:export -- data.json project=myproject
|
|
43
|
+
|
|
44
|
+
# Import from JSON
|
|
45
|
+
npm run db:import -- data.json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### In Projects with sqlew as Dependency
|
|
49
|
+
|
|
50
|
+
Add to your `package.json`:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"scripts": {
|
|
55
|
+
"db:dump": "node node_modules/sqlew/dist/cli.js db:dump",
|
|
56
|
+
"db:export": "node node_modules/sqlew/dist/cli.js db:export",
|
|
57
|
+
"db:import": "node node_modules/sqlew/dist/cli.js db:import"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Then use:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npm run db:dump -- mysql backup.sql
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Available Commands
|
|
69
|
+
|
|
70
|
+
### 1. `db:dump` - SQL Database Migration
|
|
71
|
+
|
|
72
|
+
Generate complete SQL dumps (schema + data) for database migration or backup.
|
|
73
|
+
|
|
74
|
+
**Use Cases**:
|
|
75
|
+
|
|
76
|
+
- Full database backup with schema
|
|
77
|
+
- Cross-database migration (SQLite → MySQL/PostgreSQL)
|
|
78
|
+
- Development → Production deployment
|
|
79
|
+
|
|
80
|
+
**Quick Example**:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Generate MySQL dump (positional format argument)
|
|
84
|
+
npm run db:dump -- mysql backup.sql
|
|
85
|
+
|
|
86
|
+
# Generate PostgreSQL dump
|
|
87
|
+
npm run db:dump -- postgresql backup.sql
|
|
88
|
+
|
|
89
|
+
# MySQL from PostgreSQL source
|
|
90
|
+
npm run db:dump -- mysql backup.sql from=postgresql
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**📖 Full Documentation**: [DATABASE_MIGRATION.md](DATABASE_MIGRATION.md)
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 2. `db:export` - Project Data Export
|
|
98
|
+
|
|
99
|
+
Export project data to JSON format for sharing or multi-project consolidation.
|
|
100
|
+
|
|
101
|
+
**Use Cases**:
|
|
102
|
+
|
|
103
|
+
- Share context with team members
|
|
104
|
+
- Move projects between different databases
|
|
105
|
+
- Consolidate multiple projects into one database
|
|
106
|
+
|
|
107
|
+
**Quick Example**:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Export specific project
|
|
111
|
+
npm run db:export -- project.json project=my-project
|
|
112
|
+
|
|
113
|
+
# Export all projects
|
|
114
|
+
npm run db:export -- all-projects.json
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**📖 Full Documentation**: [DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md#export-command)
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
### 3. `db:import` - Project Data Import
|
|
122
|
+
|
|
123
|
+
Import project data from JSON export files.
|
|
124
|
+
|
|
125
|
+
**Use Cases**:
|
|
126
|
+
|
|
127
|
+
- Import shared project context
|
|
128
|
+
- Merge multiple projects into one database
|
|
129
|
+
- Migrate projects to a new database (different machine or DB type)
|
|
130
|
+
|
|
131
|
+
**Quick Example**:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Import from JSON export
|
|
135
|
+
npm run db:import -- project.json
|
|
136
|
+
|
|
137
|
+
# Import with custom name
|
|
138
|
+
npm run db:import -- project.json project-name=new-name
|
|
139
|
+
|
|
140
|
+
# Dry-run validation
|
|
141
|
+
npm run db:import -- project.json dry-run=true
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**📖 Full Documentation**: [DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md#import-command)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Recommended Data Migration Workflow
|
|
149
|
+
|
|
150
|
+
### Cross-Database Migration (Recommended: JSON)
|
|
151
|
+
|
|
152
|
+
For migrations between different database systems (e.g., SQLite to MySQL, PostgreSQL to MySQL), **use JSON format**:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Step 1: Export from source database
|
|
156
|
+
npm run db:export -- backup.json
|
|
157
|
+
|
|
158
|
+
# Step 2: Configure target database connection
|
|
159
|
+
# (Update your .sqlew/config.toml or environment variables)
|
|
160
|
+
|
|
161
|
+
# Step 3: Import to target database
|
|
162
|
+
npm run db:import -- backup.json
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Why JSON for cross-database migration?**
|
|
166
|
+
- Database-agnostic format - no SQL syntax differences
|
|
167
|
+
- Automatic ID remapping handles foreign key relationships
|
|
168
|
+
- Preserves all data integrity across different RDBMS
|
|
169
|
+
|
|
170
|
+
### SQL Dump (Same-RDBMS Only)
|
|
171
|
+
|
|
172
|
+
SQL dump (`db:dump`) is designed for **same-database-type operations only**:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# SQLite backup (restore to SQLite)
|
|
176
|
+
npm run db:dump -- sqlite backup.sql
|
|
177
|
+
|
|
178
|
+
# MySQL backup (restore to MySQL)
|
|
179
|
+
npm run db:dump -- mysql backup.sql
|
|
180
|
+
|
|
181
|
+
# PostgreSQL backup (restore to PostgreSQL)
|
|
182
|
+
npm run db:dump -- postgresql backup.sql
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Note**: SQL dump does NOT support cross-database migrations (e.g., SQLite to MySQL). The generated SQL contains database-specific syntax that may not be compatible with other RDBMS.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Quick Comparison: When to Use Which Command
|
|
190
|
+
|
|
191
|
+
| Scenario | Use Command | Restore Capability |
|
|
192
|
+
|-----------------------------------------------|---------------------------|----------------------------|
|
|
193
|
+
| **Full database backup (same RDBMS)** | `db:dump` | Full restore |
|
|
194
|
+
| **Cross-database migration** (SQLite -> MySQL)| `db:export` / `db:import` | Full restore via JSON |
|
|
195
|
+
| **Share project with team** | `db:export` / `db:import` | Skips if project exists |
|
|
196
|
+
| **Consolidate multiple projects** | `db:export` / `db:import` | Skips if project exists |
|
|
197
|
+
| **Backup/restore same database** | `db:dump` | Full restore |
|
|
198
|
+
|
|
199
|
+
**⚠️ Important**: `db:export`/`db:import` uses `--skip-if-exists=true` by default, so it's NOT suitable for
|
|
200
|
+
backup/restore to the same database. Use `db:dump` for proper backup/restore.
|
|
201
|
+
|
|
202
|
+
## Common Workflows
|
|
203
|
+
|
|
204
|
+
### Workflow 1: Full Database Backup
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# Create SQL backup with schema + data
|
|
208
|
+
npm run db:dump -- sqlite backup-$(date +%Y%m%d).sql
|
|
209
|
+
|
|
210
|
+
# Or simple SQLite file copy
|
|
211
|
+
cp .sqlew/sqlew.db .sqlew/backup-$(date +%Y%m%d).db
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Workflow 2: Share the Project with a Team Member
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Developer A: Export project
|
|
218
|
+
npm run db:export -- feature-x.json project=feature-x
|
|
219
|
+
|
|
220
|
+
# Developer B: Import project (in their own database)
|
|
221
|
+
npm run db:import -- feature-x.json
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Workflow 3: Migrate to MySQL from SQLite
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Step 1: Generate MySQL dump
|
|
228
|
+
npm run db:dump -- mysql migrate-to-mysql.sql
|
|
229
|
+
|
|
230
|
+
# Step 2: Create MySQL database
|
|
231
|
+
mysql -e "CREATE DATABASE sqlew_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
|
232
|
+
|
|
233
|
+
# Step 3: Import dump
|
|
234
|
+
mysql -u user -p sqlew_db < migrate-to-mysql.sql
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Workflow 4: Consolidate Multiple Projects
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# Export from each project
|
|
241
|
+
npm run db:export -- /tmp/a.json project=project-a
|
|
242
|
+
npm run db:export -- /tmp/b.json project=project-b
|
|
243
|
+
|
|
244
|
+
# Import all to shared database
|
|
245
|
+
npm run db:import -- /tmp/a.json
|
|
246
|
+
npm run db:import -- /tmp/b.json
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Getting Help
|
|
250
|
+
|
|
251
|
+
Show command-specific help:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
npm run db:dump -- --help
|
|
255
|
+
npm run db:export -- --help
|
|
256
|
+
npm run db:import -- --help
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Detailed Documentation
|
|
260
|
+
|
|
261
|
+
- **[DATABASE_MIGRATION.md](DATABASE_MIGRATION.md)** - Complete `db:dump` reference
|
|
262
|
+
- SQL dump generation for all database types
|
|
263
|
+
- Data type mappings
|
|
264
|
+
- Transaction safety
|
|
265
|
+
- Conflict resolution
|
|
266
|
+
|
|
267
|
+
- **[DATA_EXPORT_IMPORT.md](DATA_EXPORT_IMPORT.md)** - Complete `db:export`/`db:import` reference
|
|
268
|
+
- JSON export/import system
|
|
269
|
+
- ID remapping strategy
|
|
270
|
+
- Multi-project consolidation
|
|
271
|
+
- Use cases and examples
|
|
272
|
+
|
|
273
|
+
## See Also
|
|
274
|
+
|
|
275
|
+
- [Main README](../../README.md) - MCP server setup and usage
|
|
276
|
+
- [Configuration Guide](../CONFIGURATION.md) - Database configuration options
|