sqlew 3.7.2 → 3.7.4
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 +237 -0
- package/LICENSE +0 -0
- package/README.md +2 -2
- package/assets/config.example.toml +0 -0
- package/assets/kanban-style.png +0 -0
- package/assets/sample-agents/README.md +0 -0
- package/assets/sample-agents/sqlew-architect.md +0 -0
- package/assets/sample-agents/sqlew-researcher.md +0 -0
- package/assets/sample-agents/sqlew-scrum-master.md +0 -0
- package/assets/schema.sql +0 -0
- package/assets/sqlew-logo.png +0 -0
- package/dist/cli/db-export.d.ts +29 -0
- package/dist/cli/db-export.d.ts.map +1 -0
- package/dist/cli/db-export.js +251 -0
- package/dist/cli/db-export.js.map +1 -0
- package/dist/cli/db-import.d.ts +31 -0
- package/dist/cli/db-import.d.ts.map +1 -0
- package/dist/cli/db-import.js +258 -0
- package/dist/cli/db-import.js.map +1 -0
- package/dist/cli.js +24 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -1
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js +12 -3
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -1
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +29 -0
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js +556 -0
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +1 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -1
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +110 -9
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -1
- package/dist/database.d.ts +3 -3
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +30 -12
- package/dist/database.js.map +1 -1
- package/dist/tests/migration-idempotency.test.js +11 -10
- package/dist/tests/migration-idempotency.test.js.map +1 -1
- package/dist/tests/migration-upgrade-paths.test.js +6 -5
- package/dist/tests/migration-upgrade-paths.test.js.map +1 -1
- package/dist/tests/migrations/test-all-versions-real.js +3 -2
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
- package/dist/tests/project-detector.test.d.ts +10 -0
- package/dist/tests/project-detector.test.d.ts.map +1 -0
- package/dist/tests/project-detector.test.js +156 -0
- package/dist/tests/project-detector.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-partial.test.js +1 -1
- package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -1
- package/dist/tests/tasks.link-file-backward-compat.test.js +3 -3
- package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-action.test.js +1 -1
- package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-parameter.test.js +2 -2
- package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -1
- package/dist/tools/constraints.js +1 -1
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.js +2 -2
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.js +2 -2
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +7 -5
- package/dist/tools/tasks.js.map +1 -1
- package/dist/types.d.ts +121 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/exporter/export.d.ts +100 -0
- package/dist/utils/exporter/export.d.ts.map +1 -0
- package/dist/utils/exporter/export.js +363 -0
- package/dist/utils/exporter/export.js.map +1 -0
- package/dist/utils/importer/import.d.ts +29 -0
- package/dist/utils/importer/import.d.ts.map +1 -0
- package/dist/utils/importer/import.js +514 -0
- package/dist/utils/importer/import.js.map +1 -0
- package/dist/utils/importer/master-tables.d.ts +18 -0
- package/dist/utils/importer/master-tables.d.ts.map +1 -0
- package/dist/utils/importer/master-tables.js +255 -0
- package/dist/utils/importer/master-tables.js.map +1 -0
- package/dist/utils/importer/topological-sort.d.ts +61 -0
- package/dist/utils/importer/topological-sort.d.ts.map +1 -0
- package/dist/utils/importer/topological-sort.js +143 -0
- package/dist/utils/importer/topological-sort.js.map +1 -0
- package/dist/utils/project-detector.d.ts +42 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +130 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/docs/ACCEPTANCE_CRITERIA.md +0 -0
- package/docs/AI_AGENT_GUIDE.md +0 -0
- package/docs/ARCHITECTURE.md +0 -0
- package/docs/AUTO_FILE_TRACKING.md +0 -1
- package/docs/BEST_PRACTICES.md +0 -0
- package/docs/CONFIGURATION.md +0 -0
- package/docs/DATABASE_AUTH.md +1 -2
- package/docs/DECISION_CONTEXT.md +0 -0
- package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +0 -0
- package/docs/GIT_AWARE_AUTO_COMPLETE.md +0 -0
- package/docs/SHARED_CONCEPTS.md +0 -0
- package/docs/SPECIALIZED_AGENTS.md +0 -0
- package/docs/TASK_ACTIONS.md +0 -0
- package/docs/TASK_DEPENDENCIES.md +0 -0
- package/docs/TASK_LINKING.md +0 -0
- package/docs/TASK_MIGRATION.md +0 -0
- package/docs/TASK_OVERVIEW.md +0 -0
- package/docs/TASK_PRUNING.md +0 -0
- package/docs/TASK_SYSTEM.md +0 -0
- package/docs/TOOL_REFERENCE.md +0 -2
- package/docs/TOOL_SELECTION.md +0 -0
- package/docs/WORKFLOWS.md +0 -0
- package/docs/{DATABASE_MIGRATION.md → cli/DATABASE_MIGRATION.md} +71 -32
- package/docs/cli/DATA_EXPORT_IMPORT.md +400 -0
- package/docs/cli/README.md +227 -0
- package/package.json +3 -2
- package/docs/BASEADAPTER_IMPLEMENTATION.md +0 -399
- package/docs/HELP_PREVIEW_COMPARISON.md +0 -259
- package/docs/MIGRATION_CHAIN.md +0 -293
- package/docs/MIGRATION_v2.md +0 -538
- package/docs/MIGRATION_v3.3.md +0 -602
- package/docs/MIGRATION_v3.6.0.md +0 -170
- package/docs/MULTI_PROJECT_ARCHITECTURE.md +0 -497
|
@@ -837,4 +837,3 @@ task action=create
|
|
|
837
837
|
- [WORKFLOWS.md](./WORKFLOWS.md) - Multi-agent coordination patterns
|
|
838
838
|
- [BEST_PRACTICES.md](./BEST_PRACTICES.md) - Common errors and solutions
|
|
839
839
|
- [TASK_MIGRATION.md](./TASK_MIGRATION.md) - Migrate from decision-based tracking
|
|
840
|
-
- [MIGRATION_v3.3.md](./MIGRATION_v3.3.md) - Migration guide from v3.2.x to v3.4.1
|
package/docs/BEST_PRACTICES.md
CHANGED
|
File without changes
|
package/docs/CONFIGURATION.md
CHANGED
|
File without changes
|
package/docs/DATABASE_AUTH.md
CHANGED
|
@@ -440,6 +440,5 @@ Planned authentication methods:
|
|
|
440
440
|
## Related Documentation
|
|
441
441
|
|
|
442
442
|
- [Configuration Guide](./CONFIGURATION.md)
|
|
443
|
-
- [
|
|
444
|
-
- [Architecture Overview](../ARCHITECTURE.md)
|
|
443
|
+
- [Architecture Overview](./ARCHITECTURE.md)
|
|
445
444
|
- [Type Definitions](../src/config/types.ts)
|
package/docs/DECISION_CONTEXT.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/SHARED_CONCEPTS.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/TASK_ACTIONS.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/TASK_LINKING.md
CHANGED
|
File without changes
|
package/docs/TASK_MIGRATION.md
CHANGED
|
File without changes
|
package/docs/TASK_OVERVIEW.md
CHANGED
|
File without changes
|
package/docs/TASK_PRUNING.md
CHANGED
|
File without changes
|
package/docs/TASK_SYSTEM.md
CHANGED
|
File without changes
|
package/docs/TOOL_REFERENCE.md
CHANGED
package/docs/TOOL_SELECTION.md
CHANGED
|
File without changes
|
package/docs/WORKFLOWS.md
CHANGED
|
File without changes
|
|
@@ -1,20 +1,45 @@
|
|
|
1
1
|
# Database Migration Guide
|
|
2
2
|
|
|
3
|
-
This guide explains how to generate complete SQL dumps from your mcp-sqlew database for use with SQLite, MySQL/MariaDB,
|
|
3
|
+
This guide explains how to generate complete SQL dumps from your mcp-sqlew database for use with SQLite, MySQL/MariaDB,
|
|
4
|
+
or PostgreSQL.
|
|
4
5
|
|
|
5
6
|
## Overview
|
|
6
7
|
|
|
7
|
-
The `db:dump` CLI tool generates complete SQL dumps (CREATE TABLE + INSERT statements) compatible with SQLite,
|
|
8
|
+
The `db:dump` CLI tool generates complete SQL dumps (CREATE TABLE + INSERT statements) compatible with SQLite,
|
|
9
|
+
MySQL/MariaDB, and PostgreSQL formats. The generated SQL can be imported directly into an empty database without
|
|
10
|
+
additional setup.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
To use the `db:dump` CLI command, install sqlew in your project:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd /path/to/your/project
|
|
18
|
+
npm install sqlew
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Tip**: Add a shortcut to your `package.json` for convenience:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"scripts": {
|
|
26
|
+
"sqlew": "node node_modules/sqlew/dist/cli.js"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Then you can use: `npm run sqlew db:dump --format=mysql --output=dump.sql`
|
|
8
32
|
|
|
9
33
|
## Usage
|
|
10
34
|
|
|
11
35
|
### Basic Syntax
|
|
12
36
|
|
|
13
37
|
```bash
|
|
14
|
-
|
|
38
|
+
node node_modules/sqlew/dist/cli.js db:dump [--from <source>] --format <target> [options]
|
|
15
39
|
```
|
|
16
40
|
|
|
17
41
|
**Parameters:**
|
|
42
|
+
|
|
18
43
|
- `--from <source>`: Source database (sqlite, mysql, postgresql). Default: sqlite
|
|
19
44
|
- `--format <target>`: Target SQL format (sqlite, mysql, postgresql). **Required**
|
|
20
45
|
- `--output <file>`: Output file path (omit for stdout)
|
|
@@ -29,12 +54,14 @@ npx sqlew db:dump [--from <source>] --format <target> [options]
|
|
|
29
54
|
### Generate SQL Dumps
|
|
30
55
|
|
|
31
56
|
**From SQLite (default):**
|
|
57
|
+
|
|
32
58
|
```bash
|
|
33
|
-
|
|
34
|
-
|
|
59
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --output dump-mysql.sql
|
|
60
|
+
node node_modules/sqlew/dist/cli.js db:dump --format postgresql --output dump-pg.sql
|
|
35
61
|
```
|
|
36
62
|
|
|
37
63
|
**From MySQL:**
|
|
64
|
+
|
|
38
65
|
```bash
|
|
39
66
|
# Configure connection via environment variables
|
|
40
67
|
export MYSQL_HOST=127.0.0.1
|
|
@@ -43,11 +70,12 @@ export MYSQL_USER=youruser
|
|
|
43
70
|
export MYSQL_PASSWORD=yourpass
|
|
44
71
|
export MYSQL_DATABASE=mcp_context
|
|
45
72
|
|
|
46
|
-
|
|
47
|
-
|
|
73
|
+
node node_modules/sqlew/dist/cli.js db:dump --from mysql --format sqlite --output dump-sqlite.sql
|
|
74
|
+
node node_modules/sqlew/dist/cli.js db:dump --from mysql --format postgresql --output dump-pg.sql
|
|
48
75
|
```
|
|
49
76
|
|
|
50
77
|
**From PostgreSQL:**
|
|
78
|
+
|
|
51
79
|
```bash
|
|
52
80
|
# Configure connection via environment variables
|
|
53
81
|
export PG_HOST=localhost
|
|
@@ -56,8 +84,8 @@ export PG_USER=postgres
|
|
|
56
84
|
export PG_PASSWORD=yourpass
|
|
57
85
|
export PG_DATABASE=mcp_context
|
|
58
86
|
|
|
59
|
-
|
|
60
|
-
|
|
87
|
+
node node_modules/sqlew/dist/cli.js db:dump --from postgresql --format sqlite --output dump-sqlite.sql
|
|
88
|
+
node node_modules/sqlew/dist/cli.js db:dump --from postgresql --format mysql --output dump-mysql.sql
|
|
61
89
|
```
|
|
62
90
|
|
|
63
91
|
### Selective Table Export
|
|
@@ -65,7 +93,7 @@ npx sqlew db:dump --from postgresql --format mysql --output dump-mysql.sql
|
|
|
65
93
|
Export only specific tables:
|
|
66
94
|
|
|
67
95
|
```bash
|
|
68
|
-
|
|
96
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --tables t_decisions,t_tasks,m_agents --output partial.sql
|
|
69
97
|
```
|
|
70
98
|
|
|
71
99
|
### Custom Chunk Size
|
|
@@ -73,7 +101,7 @@ npx sqlew db:dump --format mysql --tables t_decisions,t_tasks,m_agents --output
|
|
|
73
101
|
For large tables, adjust INSERT batch size:
|
|
74
102
|
|
|
75
103
|
```bash
|
|
76
|
-
|
|
104
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --chunk-size 500 --output dump.sql
|
|
77
105
|
```
|
|
78
106
|
|
|
79
107
|
### Data-Only Dumps
|
|
@@ -81,10 +109,11 @@ npx sqlew db:dump --format mysql --chunk-size 500 --output dump.sql
|
|
|
81
109
|
For advanced use cases where you manage schema separately:
|
|
82
110
|
|
|
83
111
|
```bash
|
|
84
|
-
|
|
112
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --exclude-schema --output data-only.sql
|
|
85
113
|
```
|
|
86
114
|
|
|
87
115
|
This generates INSERT statements without CREATE TABLE, useful for:
|
|
116
|
+
|
|
88
117
|
- Importing into databases with existing schema
|
|
89
118
|
- Backup/restore of data only
|
|
90
119
|
- Data transfer between identical schemas
|
|
@@ -95,21 +124,23 @@ Handle duplicate keys when importing into existing databases:
|
|
|
95
124
|
|
|
96
125
|
```bash
|
|
97
126
|
# Ignore duplicates (safe for adding new data)
|
|
98
|
-
|
|
127
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --on-conflict ignore --output dump.sql
|
|
99
128
|
|
|
100
129
|
# Update existing rows (sync/overwrite mode)
|
|
101
|
-
|
|
130
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --on-conflict replace --output dump.sql
|
|
102
131
|
|
|
103
132
|
# Fail on duplicates (default, strict mode)
|
|
104
|
-
|
|
133
|
+
node node_modules/sqlew/dist/cli.js db:dump --format mysql --on-conflict error --output dump.sql
|
|
105
134
|
```
|
|
106
135
|
|
|
107
136
|
**Modes:**
|
|
137
|
+
|
|
108
138
|
- `error` (default): Standard INSERT, fails if duplicate keys exist
|
|
109
139
|
- `ignore`: Skip duplicate rows (INSERT IGNORE / ON CONFLICT DO NOTHING)
|
|
110
140
|
- `replace`: Update existing rows with new values (ON DUPLICATE KEY UPDATE / ON CONFLICT DO UPDATE)
|
|
111
141
|
|
|
112
142
|
**Use cases:**
|
|
143
|
+
|
|
113
144
|
- `ignore`: Importing into a database that may already have some data
|
|
114
145
|
- `replace`: Synchronizing data from one database to another
|
|
115
146
|
- `error`: Fresh database migration where duplicates indicate a problem
|
|
@@ -120,14 +151,14 @@ npx sqlew db:dump --format mysql --on-conflict error --output dump.sql
|
|
|
120
151
|
|
|
121
152
|
The `db:dump` tool supports **all 6 migration paths** between SQLite, MySQL/MariaDB, and PostgreSQL:
|
|
122
153
|
|
|
123
|
-
| Source
|
|
124
|
-
|
|
125
|
-
| SQLite
|
|
126
|
-
| SQLite
|
|
127
|
-
| MySQL
|
|
128
|
-
| PostgreSQL | SQLite
|
|
129
|
-
| MySQL
|
|
130
|
-
| PostgreSQL | MySQL
|
|
154
|
+
| Source | Target | Command |
|
|
155
|
+
|------------|------------|-------------------------------------|
|
|
156
|
+
| SQLite | MySQL | `--format mysql` |
|
|
157
|
+
| SQLite | PostgreSQL | `--format postgresql` |
|
|
158
|
+
| MySQL | SQLite | `--from mysql --format sqlite` |
|
|
159
|
+
| PostgreSQL | SQLite | `--from postgresql --format sqlite` |
|
|
160
|
+
| MySQL | PostgreSQL | `--from mysql --format postgresql` |
|
|
161
|
+
| PostgreSQL | MySQL | `--from postgresql --format mysql` |
|
|
131
162
|
|
|
132
163
|
---
|
|
133
164
|
|
|
@@ -137,25 +168,26 @@ The tool automatically handles database-specific data type conversions:
|
|
|
137
168
|
|
|
138
169
|
### Boolean Values
|
|
139
170
|
|
|
140
|
-
| SQLite | MySQL
|
|
141
|
-
|
|
142
|
-
| 0/1
|
|
171
|
+
| SQLite | MySQL | PostgreSQL |
|
|
172
|
+
|--------|---------------|------------|
|
|
173
|
+
| 0/1 | 0/1 (TINYINT) | FALSE/TRUE |
|
|
143
174
|
|
|
144
175
|
### Binary Data
|
|
145
176
|
|
|
146
|
-
| SQLite
|
|
147
|
-
|
|
177
|
+
| SQLite | MySQL | PostgreSQL |
|
|
178
|
+
|------------|---------------|----------------|
|
|
148
179
|
| BLOB (hex) | X'hex' (BLOB) | '\xhex'::bytea |
|
|
149
180
|
|
|
150
181
|
### Identifiers
|
|
151
182
|
|
|
152
|
-
| SQLite
|
|
153
|
-
|
|
154
|
-
| "table" | \`table\` | "table"
|
|
183
|
+
| SQLite | MySQL | PostgreSQL |
|
|
184
|
+
|---------|-----------|------------|
|
|
185
|
+
| "table" | \`table\` | "table" |
|
|
155
186
|
|
|
156
187
|
### Text and Numeric Types
|
|
157
188
|
|
|
158
189
|
All databases handle TEXT, VARCHAR, INTEGER, and REAL types consistently. The tool preserves:
|
|
190
|
+
|
|
159
191
|
- Unix epoch timestamps (stored as INTEGER)
|
|
160
192
|
- UTF-8 text encoding
|
|
161
193
|
- NULL values
|
|
@@ -167,11 +199,13 @@ All databases handle TEXT, VARCHAR, INTEGER, and REAL types consistently. The to
|
|
|
167
199
|
The generated SQL is complete and self-contained. Import it directly into an **empty database**:
|
|
168
200
|
|
|
169
201
|
**SQLite:**
|
|
202
|
+
|
|
170
203
|
```bash
|
|
171
204
|
sqlite3 your-database.db < dump-sqlite.sql
|
|
172
205
|
```
|
|
173
206
|
|
|
174
207
|
**MySQL/MariaDB:**
|
|
208
|
+
|
|
175
209
|
```bash
|
|
176
210
|
# Create empty database first
|
|
177
211
|
mysql -e "CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
|
@@ -180,6 +214,7 @@ mysql mydb < dump-mysql.sql
|
|
|
180
214
|
```
|
|
181
215
|
|
|
182
216
|
**PostgreSQL:**
|
|
217
|
+
|
|
183
218
|
```bash
|
|
184
219
|
# Create empty database first
|
|
185
220
|
createdb mydb
|
|
@@ -193,13 +228,16 @@ Use `--on-conflict ignore` or `--on-conflict replace` when generating the dump (
|
|
|
193
228
|
## Transaction Safety
|
|
194
229
|
|
|
195
230
|
All generated SQL dumps are wrapped in database transactions:
|
|
231
|
+
|
|
196
232
|
- **MySQL/MariaDB**: `START TRANSACTION;` ... `COMMIT;`
|
|
197
233
|
- **PostgreSQL**: `BEGIN;` ... `COMMIT;`
|
|
198
234
|
- **SQLite**: `BEGIN TRANSACTION;` ... `COMMIT;`
|
|
199
235
|
|
|
200
|
-
If the import fails at any point, all changes are automatically rolled back, leaving the database in its original state.
|
|
236
|
+
If the import fails at any point, all changes are automatically rolled back, leaving the database in its original state.
|
|
237
|
+
This prevents partial imports that would leave the database in an inconsistent state.
|
|
201
238
|
|
|
202
239
|
**Benefits:**
|
|
240
|
+
|
|
203
241
|
- Atomic imports: Either all data is imported successfully or nothing is changed
|
|
204
242
|
- Safe to retry: Failed imports don't leave partial data that needs cleanup
|
|
205
243
|
- Consistent state: Database is never left in an intermediate state
|
|
@@ -243,5 +281,6 @@ PG_DATABASE=mcp_context # Default: mcp_context
|
|
|
243
281
|
## Support
|
|
244
282
|
|
|
245
283
|
For issues or questions:
|
|
284
|
+
|
|
246
285
|
- GitHub Issues: https://github.com/sin5ddd/mcp-sqlew/issues
|
|
247
286
|
- Documentation: `/docs` directory in repository
|