sqlew 4.0.5 → 4.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 (201) hide show
  1. package/CHANGELOG.md +1805 -1782
  2. package/README.md +409 -468
  3. package/assets/claude-md-snippets/plan-mode-integration.md +17 -6
  4. package/assets/config.example.toml +282 -284
  5. package/assets/sample-agents/README.md +36 -40
  6. package/assets/sample-agents/sqlew-architect.md +321 -322
  7. package/assets/sample-agents/sqlew-researcher.md +292 -293
  8. package/assets/sample-agents/sqlew-scrum-master.md +286 -287
  9. package/assets/sample-commands/README.md +56 -57
  10. package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +33 -26
  11. package/dist/cli/hooks/check-completion.d.ts +19 -0
  12. package/dist/cli/hooks/check-completion.d.ts.map +1 -0
  13. package/dist/cli/hooks/check-completion.js +104 -0
  14. package/dist/cli/hooks/check-completion.js.map +1 -0
  15. package/dist/cli/hooks/init-hooks.d.ts +35 -0
  16. package/dist/cli/hooks/init-hooks.d.ts.map +1 -0
  17. package/dist/cli/hooks/init-hooks.js +425 -0
  18. package/dist/cli/hooks/init-hooks.js.map +1 -0
  19. package/dist/cli/hooks/mark-done.d.ts +25 -0
  20. package/dist/cli/hooks/mark-done.d.ts.map +1 -0
  21. package/dist/cli/hooks/mark-done.js +128 -0
  22. package/dist/cli/hooks/mark-done.js.map +1 -0
  23. package/dist/cli/hooks/plan-id-utils.d.ts +83 -0
  24. package/dist/cli/hooks/plan-id-utils.d.ts.map +1 -0
  25. package/dist/cli/hooks/plan-id-utils.js +183 -0
  26. package/dist/cli/hooks/plan-id-utils.js.map +1 -0
  27. package/dist/cli/hooks/save.d.ts +23 -0
  28. package/dist/cli/hooks/save.d.ts.map +1 -0
  29. package/dist/cli/hooks/save.js +90 -0
  30. package/dist/cli/hooks/save.js.map +1 -0
  31. package/dist/cli/hooks/stdin-parser.d.ts +139 -0
  32. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -0
  33. package/dist/cli/hooks/stdin-parser.js +127 -0
  34. package/dist/cli/hooks/stdin-parser.js.map +1 -0
  35. package/dist/cli/hooks/suggest.d.ts +19 -0
  36. package/dist/cli/hooks/suggest.d.ts.map +1 -0
  37. package/dist/cli/hooks/suggest.js +157 -0
  38. package/dist/cli/hooks/suggest.js.map +1 -0
  39. package/dist/cli/hooks/track-plan.d.ts +36 -0
  40. package/dist/cli/hooks/track-plan.d.ts.map +1 -0
  41. package/dist/cli/hooks/track-plan.js +152 -0
  42. package/dist/cli/hooks/track-plan.js.map +1 -0
  43. package/dist/cli.d.ts.map +1 -1
  44. package/dist/cli.js +56 -16
  45. package/dist/cli.js.map +1 -1
  46. package/dist/config/global-config.d.ts +187 -0
  47. package/dist/config/global-config.d.ts.map +1 -0
  48. package/dist/config/global-config.js +206 -0
  49. package/dist/config/global-config.js.map +1 -0
  50. package/dist/config/loader.d.ts +42 -0
  51. package/dist/config/loader.d.ts.map +1 -1
  52. package/dist/config/loader.js +96 -0
  53. package/dist/config/loader.js.map +1 -1
  54. package/dist/constants.d.ts +4 -0
  55. package/dist/constants.d.ts.map +1 -1
  56. package/dist/constants.js +10 -0
  57. package/dist/constants.js.map +1 -1
  58. package/dist/database/operations/queries.d.ts.map +1 -1
  59. package/dist/database/operations/queries.js +11 -2
  60. package/dist/database/operations/queries.js.map +1 -1
  61. package/dist/index.js +4 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/init-agents.js +0 -1
  64. package/dist/init-agents.js.map +1 -1
  65. package/dist/init-skills.d.ts +4 -3
  66. package/dist/init-skills.d.ts.map +1 -1
  67. package/dist/init-skills.js +10 -3
  68. package/dist/init-skills.js.map +1 -1
  69. package/dist/server/setup.d.ts +8 -0
  70. package/dist/server/setup.d.ts.map +1 -1
  71. package/dist/server/setup.js +141 -21
  72. package/dist/server/setup.js.map +1 -1
  73. package/dist/sync-agents.d.ts.map +1 -1
  74. package/dist/sync-agents.js +48 -3
  75. package/dist/sync-agents.js.map +1 -1
  76. package/dist/sync-commands.d.ts.map +1 -1
  77. package/dist/sync-commands.js +43 -3
  78. package/dist/sync-commands.js.map +1 -1
  79. package/dist/tools/constraints/actions/get.d.ts.map +1 -1
  80. package/dist/tools/constraints/actions/get.js +5 -8
  81. package/dist/tools/constraints/actions/get.js.map +1 -1
  82. package/dist/tools/constraints/help/help.d.ts.map +1 -1
  83. package/dist/tools/constraints/help/help.js +1 -6
  84. package/dist/tools/constraints/help/help.js.map +1 -1
  85. package/dist/tools/context/actions/get.d.ts.map +1 -1
  86. package/dist/tools/context/actions/get.js.map +1 -1
  87. package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
  88. package/dist/tools/context/actions/search-layer.js +5 -3
  89. package/dist/tools/context/actions/search-layer.js.map +1 -1
  90. package/dist/tools/context/actions/set-from-policy.d.ts +2 -1
  91. package/dist/tools/context/actions/set-from-policy.d.ts.map +1 -1
  92. package/dist/tools/context/actions/set-from-policy.js.map +1 -1
  93. package/dist/tools/context/help/help.d.ts.map +1 -1
  94. package/dist/tools/context/help/help.js +1 -7
  95. package/dist/tools/context/help/help.js.map +1 -1
  96. package/dist/tools/context/internal/queries.d.ts.map +1 -1
  97. package/dist/tools/context/internal/queries.js +5 -2
  98. package/dist/tools/context/internal/queries.js.map +1 -1
  99. package/dist/tools/context/types.d.ts +1 -1
  100. package/dist/tools/context/types.d.ts.map +1 -1
  101. package/dist/tools/files/actions/get.d.ts.map +1 -1
  102. package/dist/tools/files/actions/get.js +4 -6
  103. package/dist/tools/files/actions/get.js.map +1 -1
  104. package/dist/tools/files/help/help.d.ts.map +1 -1
  105. package/dist/tools/files/help/help.js +1 -6
  106. package/dist/tools/files/help/help.js.map +1 -1
  107. package/dist/tools/suggest/help/constraint-help.d.ts.map +1 -1
  108. package/dist/tools/suggest/help/constraint-help.js +0 -2
  109. package/dist/tools/suggest/help/constraint-help.js.map +1 -1
  110. package/dist/tools/suggest/internal/constraint-queries.d.ts.map +1 -1
  111. package/dist/tools/suggest/internal/constraint-queries.js +12 -5
  112. package/dist/tools/suggest/internal/constraint-queries.js.map +1 -1
  113. package/dist/tools/suggest/internal/queries.js +2 -2
  114. package/dist/tools/suggest/internal/queries.js.map +1 -1
  115. package/dist/tools/tasks/help/help.d.ts.map +1 -1
  116. package/dist/tools/tasks/help/help.js +0 -6
  117. package/dist/tools/tasks/help/help.js.map +1 -1
  118. package/dist/tools/tasks/help/use-case.d.ts.map +1 -1
  119. package/dist/tools/tasks/help/use-case.js +0 -1
  120. package/dist/tools/tasks/help/use-case.js.map +1 -1
  121. package/dist/tools/tasks/watcher/status.d.ts.map +1 -1
  122. package/dist/tools/tasks/watcher/status.js +5 -1
  123. package/dist/tools/tasks/watcher/status.js.map +1 -1
  124. package/dist/types/decision/params.d.ts +7 -6
  125. package/dist/types/decision/params.d.ts.map +1 -1
  126. package/dist/types/decision/templates.d.ts +3 -2
  127. package/dist/types/decision/templates.d.ts.map +1 -1
  128. package/dist/types/view-entities.d.ts +2 -1
  129. package/dist/types/view-entities.d.ts.map +1 -1
  130. package/dist/types.d.ts +19 -11
  131. package/dist/types.d.ts.map +1 -1
  132. package/dist/types.js +4 -1
  133. package/dist/types.js.map +1 -1
  134. package/dist/utils/enum-converter.d.ts +72 -0
  135. package/dist/utils/enum-converter.d.ts.map +1 -0
  136. package/dist/utils/enum-converter.js +76 -0
  137. package/dist/utils/enum-converter.js.map +1 -0
  138. package/dist/utils/hook-queue.d.ts +81 -0
  139. package/dist/utils/hook-queue.d.ts.map +1 -0
  140. package/dist/utils/hook-queue.js +156 -0
  141. package/dist/utils/hook-queue.js.map +1 -0
  142. package/dist/utils/project-root.d.ts +9 -2
  143. package/dist/utils/project-root.d.ts.map +1 -1
  144. package/dist/utils/project-root.js +16 -2
  145. package/dist/utils/project-root.js.map +1 -1
  146. package/dist/utils/tag-parser.d.ts.map +1 -1
  147. package/dist/utils/tag-parser.js +6 -0
  148. package/dist/utils/tag-parser.js.map +1 -1
  149. package/dist/utils/validators.d.ts +1 -1
  150. package/dist/utils/validators.d.ts.map +1 -1
  151. package/dist/utils/validators.js +1 -1
  152. package/dist/utils/validators.js.map +1 -1
  153. package/dist/utils/vcs-adapter.d.ts +44 -0
  154. package/dist/utils/vcs-adapter.d.ts.map +1 -1
  155. package/dist/utils/vcs-adapter.js +88 -0
  156. package/dist/utils/vcs-adapter.js.map +1 -1
  157. package/dist/utils/view-queries.d.ts.map +1 -1
  158. package/dist/utils/view-queries.js +9 -19
  159. package/dist/utils/view-queries.js.map +1 -1
  160. package/dist/watcher/base-watcher.d.ts +69 -0
  161. package/dist/watcher/base-watcher.d.ts.map +1 -0
  162. package/dist/watcher/base-watcher.js +130 -0
  163. package/dist/watcher/base-watcher.js.map +1 -0
  164. package/dist/watcher/index.d.ts +3 -0
  165. package/dist/watcher/index.d.ts.map +1 -1
  166. package/dist/watcher/index.js +2 -0
  167. package/dist/watcher/index.js.map +1 -1
  168. package/dist/watcher/queue-watcher.d.ts +64 -0
  169. package/dist/watcher/queue-watcher.d.ts.map +1 -0
  170. package/dist/watcher/queue-watcher.js +187 -0
  171. package/dist/watcher/queue-watcher.js.map +1 -0
  172. package/docs/ADR_CONCEPTS.md +140 -0
  173. package/docs/CONFIGURATION.md +922 -925
  174. package/docs/CROSS_DATABASE.md +153 -0
  175. package/docs/DATABASE_AUTH.md +70 -356
  176. package/docs/HOOKS_GUIDE.md +159 -0
  177. package/docs/SLASH_COMMANDS.md +329 -337
  178. package/docs/TASK_SYSTEM_DEPRECATED.md +88 -0
  179. package/docs/changelogs/CHANGELOG_ARCHIVE_v3.4_and_older.md +293 -296
  180. package/docs/cli/DATA_EXPORT_IMPORT.md +699 -700
  181. package/docs/cli/README.md +276 -277
  182. package/package.json +123 -124
  183. package/docs/ACCEPTANCE_CRITERIA.md +0 -625
  184. package/docs/AI_AGENT_GUIDE.md +0 -299
  185. package/docs/ARCHITECTURE.md +0 -167
  186. package/docs/AUTO_FILE_TRACKING.md +0 -841
  187. package/docs/BATCH_VALIDATION.md +0 -617
  188. package/docs/BEST_PRACTICES.md +0 -168
  189. package/docs/CONSTRAINT_INTELLIGENCE.md +0 -339
  190. package/docs/DECISION_CONTEXT.md +0 -697
  191. package/docs/DECISION_INTELLIGENCE.md +0 -605
  192. package/docs/GIT_AWARE_AUTO_COMPLETE.md +0 -646
  193. package/docs/MIGRATION_GUIDE_V3.9.0.md +0 -371
  194. package/docs/SHARED_CONCEPTS.md +0 -225
  195. package/docs/SPECIALIZED_AGENTS.md +0 -126
  196. package/docs/TASK_ACTIONS.md +0 -1177
  197. package/docs/TASK_OVERVIEW.md +0 -452
  198. package/docs/TASK_PRUNING.md +0 -594
  199. package/docs/TOOL_REFERENCE.md +0 -1077
  200. package/docs/TOOL_SELECTION.md +0 -83
  201. package/docs/WORKFLOWS.md +0 -941
@@ -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