sqlew 4.0.0 → 4.0.2

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 (92) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +12 -8
  3. package/dist/cli/db-dump.d.ts +4 -0
  4. package/dist/cli/db-dump.d.ts.map +1 -1
  5. package/dist/cli/db-dump.js +89 -114
  6. package/dist/cli/db-dump.js.map +1 -1
  7. package/dist/cli/db-export.d.ts +1 -0
  8. package/dist/cli/db-export.d.ts.map +1 -1
  9. package/dist/cli/db-export.js +46 -80
  10. package/dist/cli/db-export.js.map +1 -1
  11. package/dist/cli/db-import.d.ts +1 -0
  12. package/dist/cli/db-import.d.ts.map +1 -1
  13. package/dist/cli/db-import.js +52 -90
  14. package/dist/cli/db-import.js.map +1 -1
  15. package/dist/cli.d.ts +10 -1
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +57 -59
  18. package/dist/cli.js.map +1 -1
  19. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts.map +1 -1
  20. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js +7 -4
  21. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js.map +1 -1
  22. package/dist/database/migrations/v4/20251128000000_drop_all_views.d.ts +24 -0
  23. package/dist/database/migrations/v4/20251128000000_drop_all_views.d.ts.map +1 -0
  24. package/dist/database/migrations/v4/20251128000000_drop_all_views.js +67 -0
  25. package/dist/database/migrations/v4/20251128000000_drop_all_views.js.map +1 -0
  26. package/dist/database/operations/inserts.d.ts.map +1 -1
  27. package/dist/database/operations/inserts.js +7 -0
  28. package/dist/database/operations/inserts.js.map +1 -1
  29. package/dist/index.d.ts +4 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +70 -48
  32. package/dist/index.js.map +1 -1
  33. package/dist/tests/database/testing-config.d.ts +4 -0
  34. package/dist/tests/database/testing-config.d.ts.map +1 -1
  35. package/dist/tests/database/testing-config.js +1 -1
  36. package/dist/tests/database/testing-config.js.map +1 -1
  37. package/dist/tests/docker/native/test-harness.d.ts +56 -1
  38. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  39. package/dist/tests/docker/native/test-harness.js +221 -5
  40. package/dist/tests/docker/native/test-harness.js.map +1 -1
  41. package/dist/tests/feature/vcs/git-aware-completion.test.js +33 -0
  42. package/dist/tests/feature/vcs/git-aware-completion.test.js.map +1 -1
  43. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +2 -0
  44. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +1 -0
  45. package/dist/tests/unit/utils/case-insensitive-validator.test.js +97 -0
  46. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +1 -0
  47. package/dist/tools/constraints/actions/get.d.ts +2 -2
  48. package/dist/tools/constraints/actions/get.d.ts.map +1 -1
  49. package/dist/tools/constraints/actions/get.js +56 -19
  50. package/dist/tools/constraints/actions/get.js.map +1 -1
  51. package/dist/tools/context/actions/create-policy.d.ts.map +1 -1
  52. package/dist/tools/context/actions/create-policy.js +5 -1
  53. package/dist/tools/context/actions/create-policy.js.map +1 -1
  54. package/dist/tools/files/actions/get.d.ts +2 -2
  55. package/dist/tools/files/actions/get.d.ts.map +1 -1
  56. package/dist/tools/files/actions/get.js +22 -51
  57. package/dist/tools/files/actions/get.js.map +1 -1
  58. package/dist/types.d.ts +10 -6
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/utils/case-insensitive-validator.d.ts +102 -0
  61. package/dist/utils/case-insensitive-validator.d.ts.map +1 -0
  62. package/dist/utils/case-insensitive-validator.js +144 -0
  63. package/dist/utils/case-insensitive-validator.js.map +1 -0
  64. package/dist/utils/exporter/export.d.ts +22 -7
  65. package/dist/utils/exporter/export.d.ts.map +1 -1
  66. package/dist/utils/exporter/export.js +33 -49
  67. package/dist/utils/exporter/export.js.map +1 -1
  68. package/dist/utils/importer/import.js +64 -27
  69. package/dist/utils/importer/import.js.map +1 -1
  70. package/dist/utils/importer/master-tables.d.ts +3 -1
  71. package/dist/utils/importer/master-tables.d.ts.map +1 -1
  72. package/dist/utils/importer/master-tables.js +7 -29
  73. package/dist/utils/importer/master-tables.js.map +1 -1
  74. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +1 -1
  75. package/dist/utils/sql-dump/core/generate-dump.js +25 -5
  76. package/dist/utils/sql-dump/core/generate-dump.js.map +1 -1
  77. package/dist/utils/sql-dump/core/index-export.d.ts +3 -2
  78. package/dist/utils/sql-dump/core/index-export.d.ts.map +1 -1
  79. package/dist/utils/sql-dump/core/index-export.js +9 -9
  80. package/dist/utils/sql-dump/core/index-export.js.map +1 -1
  81. package/dist/utils/sql-dump/schema/indexes.d.ts +14 -0
  82. package/dist/utils/sql-dump/schema/indexes.d.ts.map +1 -1
  83. package/dist/utils/sql-dump/schema/indexes.js +81 -15
  84. package/dist/utils/sql-dump/schema/indexes.js.map +1 -1
  85. package/dist/utils/sql-dump/schema/tables.d.ts +4 -1
  86. package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -1
  87. package/dist/utils/sql-dump/schema/tables.js +81 -51
  88. package/dist/utils/sql-dump/schema/tables.js.map +1 -1
  89. package/docs/cli/DATABASE_MIGRATION.md +62 -58
  90. package/docs/cli/DATA_EXPORT_IMPORT.md +403 -103
  91. package/docs/cli/README.md +95 -45
  92. package/package.json +4 -6
package/CHANGELOG.md CHANGED
@@ -7,6 +7,132 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [4.0.2] - 2025-11-28
11
+
12
+ ### BREAKING CHANGES
13
+
14
+ **SQL Dump No Longer Supports Cross-Database Format Conversion**
15
+
16
+ The `db:dump` command now generates SQL for the **same database type only**. Cross-database migrations (e.g., SQLite → MySQL) must use JSON export/import instead.
17
+
18
+ **Migration Required:**
19
+ ```bash
20
+ # ❌ Old approach (no longer supported)
21
+ npx sqlew db:dump mysql backup.sql # Cross-DB conversion removed
22
+
23
+ # ✅ New approach: Use JSON for cross-database migration
24
+ npx sqlew db:export backup.json # Export to JSON
25
+ npx sqlew db:import backup.json # Import to target database
26
+ ```
27
+
28
+ **Rationale:**
29
+ - SQL syntax differences between databases caused data corruption issues
30
+ - Case-insensitive pattern matching failed in certain scenarios
31
+ - JSON format is database-agnostic and handles all data types correctly
32
+
33
+ **Node.js 20+ Required**
34
+
35
+ Minimum Node.js version updated from 18.0.0 to 20.0.0.
36
+
37
+ ### Added
38
+
39
+ **Unified CLI Entry Point**
40
+
41
+ - `npx sqlew db:export`, `npx sqlew db:import`, `npx sqlew db:dump` now work directly
42
+ - No `npm install` required - just use `npx sqlew <command>`
43
+ - CLI commands and MCP server mode unified under single `sqlew` entry point
44
+ - Removed separate `sqlew-cli` binary
45
+
46
+ ### Fixed
47
+
48
+ **Case-Insensitive Validation for Master Records**
49
+
50
+ - Added case-insensitive duplicate detection when registering new records
51
+ - Prevents duplicate entries like "MyTag" and "mytag" from being created
52
+ - Applies to tags, scopes, layers, and other master table entries
53
+ - New utility: `src/utils/case-insensitive-validator.ts`
54
+
55
+ **SQLite to MySQL SQL Dump Case-Sensitivity Bug**
56
+
57
+ - Fixed regex pattern matching that failed with case variations
58
+ - SQL dump now correctly handles mixed-case identifiers
59
+ - Enhanced schema table export for better compatibility
60
+
61
+ ### Changed
62
+
63
+ **Export Version Tracking**
64
+
65
+ - Export JSON now includes proper version metadata
66
+ - Version information helps with import compatibility checks
67
+ - Clearer error messages when importing incompatible versions
68
+
69
+ **CLI Documentation Update**
70
+
71
+ - Updated `docs/cli/README.md` with JSON-first migration workflow
72
+ - Added clear guidance on when to use `db:dump` vs `db:export`/`db:import`
73
+ - Improved comparison table for migration scenarios
74
+
75
+ ### Added
76
+
77
+ **Case-Insensitive Validator Utility**
78
+
79
+ - New `src/utils/case-insensitive-validator.ts` for consistent validation
80
+ - Comprehensive test suite: `src/tests/unit/utils/case-insensitive-validator.test.ts`
81
+ - Reusable across all master table operations
82
+
83
+ ### Migration Notes
84
+
85
+ **Backward Compatibility:**
86
+ - Existing databases unaffected
87
+ - JSON export/import workflows unchanged
88
+ - SQL dumps for same-database-type operations still work
89
+
90
+ **Action Required:**
91
+ - Update any scripts that use `db:dump` for cross-database migrations
92
+ - Switch to `db:export`/`db:import` for SQLite ↔ MySQL ↔ PostgreSQL migrations
93
+
94
+ ---
95
+
96
+ ## [4.0.1] - 2025-11-28
97
+
98
+ ### Removed
99
+
100
+ **Database Views Eliminated**
101
+
102
+ - Dropped all database views (`v_tagged_constraints`, `v_recent_file_changes`, etc.)
103
+ - Views caused migration complexity across SQLite/MySQL/PostgreSQL due to database-specific syntax
104
+ - Migration: `20251128000000_drop_all_views.ts`
105
+
106
+ ### Changed
107
+
108
+ **JOIN-Based Queries**
109
+
110
+ - `src/tools/constraints/actions/get.ts` - Replaced `v_tagged_constraints` view with JOIN query
111
+ - `src/tools/files/actions/get.ts` - Replaced `v_recent_file_changes` view with JOIN query
112
+ - Uses `UniversalKnex` wrapper for cross-database compatibility (date functions, boolean values, string aggregation)
113
+
114
+ **VCS Test Cleanup**
115
+
116
+ - `src/tests/feature/vcs/git-aware-completion.test.ts` - Added automatic git reset after tests
117
+ - Test commits are now automatically dropped when tests complete
118
+ - Prevents test artifacts from polluting git history
119
+
120
+ ### Added
121
+
122
+ **No-Views Guardrail Skill**
123
+
124
+ - `.claude/skills/no-views/SKILL.md` - Documentation for view prohibition policy
125
+ - `.claude/skills/skill-rules.json` - Added `no-views` rule (enforcement: block)
126
+ - Blocks creation of database views, requires JOINs instead
127
+
128
+ **Documentation Updates**
129
+
130
+ - `CLAUDE.md` - Updated to reflect no-views policy
131
+ - Removed Views section from database schema documentation
132
+ - Added `no-views` to Guardrail Skills table
133
+
134
+ ---
135
+
10
136
  ## [4.0.0] - 2025-11-27
11
137
 
12
138
  ### Changed
package/README.md CHANGED
@@ -96,7 +96,7 @@ See [docs/TASK_OVERVIEW.md](docs/TASK_OVERVIEW.md) and [docs/DECISION_CONTEXT.md
96
96
  ## Installation
97
97
 
98
98
  ### Requirements
99
- - Node.js 18.0.0 or higher
99
+ - Node.js 20.0.0 or higher
100
100
  - npm or npx
101
101
 
102
102
  ### Quick Install
@@ -441,16 +441,20 @@ Support development via [GitHub Sponsors](https://github.com/sponsors/sin5ddd) -
441
441
 
442
442
  ## Version
443
443
 
444
- Current version: **3.9.0**
444
+ Current version: **4.0.2**
445
445
  See [CHANGELOG.md](CHANGELOG.md) for release history.
446
446
 
447
- **What's New in v3.9.0:**
448
- - **Decision Intelligence System** - Three-tier duplicate detection (35-44 gentle nudge, 45-59 hard block, 60+ auto-update)
449
- - **New `suggest` Tool** - Find similar decisions by key, tags, or context
450
- - **Policy-Based Auto-Triggering** - Automatic suggestions when `suggest_similar=1`
451
- - **Enhanced Metadata** - Auto-update responses include `duplicate_reason`, `version_info`, `update_command`
447
+ **What's New in v4.0.2:**
448
+ - **Unified CLI Entry Point** - `npx sqlew db:export` works directly (no `npm install` required)
449
+ - **Cross-DB Migration via JSON Only** - SQL dump no longer supports cross-database conversion
450
+ - **Node.js 20+ Required** - Updated minimum version requirement
452
451
 
453
- See [docs/DECISION_INTELLIGENCE.md](docs/DECISION_INTELLIGENCE.md) for details.
452
+ **What's New in v4.0.0:**
453
+ - **Schema Refactoring** - Unified v4_ table prefix, agent system completely removed
454
+ - **Clean Schema** - No legacy columns, optimized for Decision & Constraint repository
455
+ - **Improved Migration System** - Reorganized v3/v4 directories
456
+
457
+ See [docs/DECISION_INTELLIGENCE.md](docs/DECISION_INTELLIGENCE.md) for details on the suggest tool.
454
458
 
455
459
  ## License
456
460
 
@@ -18,6 +18,10 @@ interface DbDumpArgs {
18
18
  export declare function showDbDumpHelp(): void;
19
19
  /**
20
20
  * Parse command-line arguments for db:dump
21
+ *
22
+ * Supports:
23
+ * - Positional: `db:dump mysql dump.sql`
24
+ * - key=value format: `db:dump to=mysql from=sqlite` (npm/PowerShell friendly)
21
25
  */
22
26
  export declare function parseDbDumpArgs(args: string[]): DbDumpArgs;
23
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"db-dump.d.ts","sourceRoot":"","sources":["../../src/cli/db-dump.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGrG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA2ErC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAiD1D;AA0HD;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsKnE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE"}
1
+ {"version":3,"file":"db-dump.d.ts","sourceRoot":"","sources":["../../src/cli/db-dump.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGrG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA8CrC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA2C1D;AA0HD;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwKnE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE"}
@@ -9,133 +9,106 @@ import { loadConfigFile } from '../config/loader.js';
9
9
  * Show help message for db:dump command
10
10
  */
11
11
  export function showDbDumpHelp() {
12
- console.log(`
13
- sqlew db:dump - Generate SQL dump for database migration
14
-
15
- USAGE:
16
- npx sqlew db:dump --format=<format> [options]
17
-
18
- REQUIRED OPTIONS:
19
- --format <format> Target database format: mysql, postgresql, or sqlite
20
-
21
- OPTIONS:
22
- --from <database> Source database: sqlite, mysql, or postgresql (default: sqlite)
23
- --output <file> Output file path (default: stdout)
24
- --tables <tables> Comma-separated list of tables to dump (default: all)
25
- --chunk-size <number> Rows per INSERT statement (default: 100)
26
- --max-statements <num> Max statements per file - splits into multiple files if exceeded
27
- (default: unlimited, recommended: 900 for MariaDB batch mode)
28
- --on-conflict <mode> Duplicate key handling: error, ignore, replace (default: error)
29
- - error: Standard INSERT (fails on duplicates)
30
- - ignore: Skip duplicate rows (INSERT IGNORE/ON CONFLICT DO NOTHING)
31
- - replace: Update existing rows (ON DUPLICATE KEY UPDATE/ON CONFLICT DO UPDATE)
32
- --exclude-schema Exclude CREATE TABLE statements (data-only dump)
33
- By default, schema is included for complete migration
34
- --db-path <path> SQLite database file path (overrides config file)
35
- --config <path> Config file path (default: auto-detect .sqlew/config.toml or config.toml)
36
- --help Show this help message
37
-
38
- CONFIG FILE:
39
- The command automatically loads database settings from config.toml.
40
- Priority: CLI args > config file > environment variables > defaults
41
-
42
- ENVIRONMENT VARIABLES (for MySQL/PostgreSQL sources):
43
- MYSQL_HOST MySQL host (default: 127.0.0.1)
44
- MYSQL_PORT MySQL port (default: 3306)
45
- MYSQL_USER MySQL username
46
- MYSQL_PASSWORD MySQL password
47
- MYSQL_DATABASE MySQL database name
48
-
49
- PG_HOST PostgreSQL host (default: localhost)
50
- PG_PORT PostgreSQL port (default: 5432)
51
- PG_USER PostgreSQL username
52
- PG_PASSWORD PostgreSQL password
53
- PG_DATABASE PostgreSQL database name
54
-
55
- EXAMPLES:
56
- # SQLite → MySQL (default source)
57
- npx sqlew db:dump --format mysql --output dump-mysql.sql
58
-
59
- # MySQL → SQLite (reverse migration)
60
- npx sqlew db:dump --from mysql --format sqlite --output dump-sqlite.sql
61
-
62
- # PostgreSQL → MySQL (cross-database)
63
- npx sqlew db:dump --from postgresql --format mysql --output dump-mysql.sql
64
-
65
- # MySQL → PostgreSQL (cross-database)
66
- npx sqlew db:dump --from mysql --format postgresql --output dump-pg.sql
67
-
68
- # Dump specific tables from PostgreSQL
69
- npx sqlew db:dump --from postgresql --format sqlite --tables t_decisions,t_tasks
70
-
71
- # Split dump for MariaDB batch mode (1000 statement limit)
72
- npx sqlew db:dump --format mysql --output dump.sql --max-statements=900
73
-
74
- MIGRATION WORKFLOW:
75
- 1. Create schema on target database:
76
- npm run migrate:latest --env=<target>
77
-
78
- 2. Generate SQL dump from source:
79
- npx sqlew db:dump --from=<source> --format=<target> --output=dump.sql
80
-
81
- 3. Import data into target database:
82
- mysql < dump.sql # for MySQL
83
- psql -f dump.sql # for PostgreSQL
84
- sqlite3 db.db < dump.sql # for SQLite
12
+ console.log(`
13
+ sqlew db:dump - Generate SQL dump for database migration
14
+
15
+ USAGE:
16
+ npm run db:dump -- <format> [output-file] [key=value ...]
17
+
18
+ ARGUMENTS:
19
+ <format> Target format: mysql, postgresql, sqlite
20
+ [output-file] Output file (optional, default: stdout)
21
+
22
+ OPTIONS (use key=value format):
23
+ to=<format> Target format (alternative to positional)
24
+ from=<database> Source database (default: sqlite)
25
+ tables=<list> Comma-separated table names (default: all)
26
+ chunk-size=<n> Rows per INSERT (default: 100)
27
+ max-statements=<n> Max statements per file (for MariaDB batch mode)
28
+ on-conflict=<mode> error|ignore|replace (default: ignore for MySQL)
29
+ exclude-schema=true Data only, no CREATE TABLE
30
+ db-path=<path> SQLite database path
31
+ config=<path> Config file path
32
+
33
+ EXAMPLES:
34
+ # SQLite MySQL
35
+ npm run db:dump -- mysql dump.sql
36
+
37
+ # MySQL → SQLite
38
+ npm run db:dump -- sqlite dump.sql from=mysql
39
+
40
+ # PostgreSQL MySQL
41
+ npm run db:dump -- mysql dump.sql from=postgresql
42
+
43
+ # Specific tables only
44
+ npm run db:dump -- mysql dump.sql tables=v4_decisions,v4_tasks
45
+
46
+ # For MariaDB batch mode (1000 statement limit)
47
+ npm run db:dump -- mysql dump.sql max-statements=900
48
+
49
+ # Using key=value for target format
50
+ npm run db:dump -- dump.sql to=mysql from=sqlite
51
+
52
+ WORKFLOW:
53
+ 1. Create schema: npm run migrate:latest
54
+ 2. Generate dump: npm run db:dump -- mysql dump.sql
55
+ 3. Import: mysql -u user -p database < dump.sql
85
56
  `);
86
57
  }
87
58
  /**
88
59
  * Parse command-line arguments for db:dump
60
+ *
61
+ * Supports:
62
+ * - Positional: `db:dump mysql dump.sql`
63
+ * - key=value format: `db:dump to=mysql from=sqlite` (npm/PowerShell friendly)
89
64
  */
90
65
  export function parseDbDumpArgs(args) {
91
66
  const parsed = {};
67
+ const validFormats = ['mysql', 'postgresql', 'sqlite'];
92
68
  for (let i = 0; i < args.length; i++) {
93
69
  const arg = args[i];
94
- if (arg.startsWith('--')) {
95
- // Handle both --key=value and --key value formats
96
- let key;
97
- let value;
98
- if (arg.includes('=')) {
99
- // --key=value format
100
- const [k, ...v] = arg.slice(2).split('=');
101
- key = k;
102
- value = v.join('='); // Rejoin in case value contains '='
70
+ // Handle key=value format (without -- prefix, npm/PowerShell friendly)
71
+ if (arg.includes('=') && !arg.startsWith('-')) {
72
+ const [key, ...v] = arg.split('=');
73
+ const value = v.join('=');
74
+ if (key === 'to' || key === 'format') {
75
+ parsed.format = value;
103
76
  }
104
- else {
105
- // --key value format
106
- key = arg.slice(2);
107
- value = args[i + 1];
77
+ else if (key === 'from') {
78
+ parsed.from = value;
108
79
  }
109
- if (key === 'help') {
110
- parsed.help = true;
80
+ else if (key === 'tables') {
81
+ parsed.tables = value;
111
82
  }
112
- else if (key === 'exclude-schema') {
113
- parsed['exclude-schema'] = true;
83
+ else if (key === 'chunk-size' || key === 'chunkSize') {
84
+ parsed['chunk-size'] = parseInt(value, 10);
114
85
  }
115
- else if (value && !value.startsWith('--')) {
116
- if (key === 'chunk-size') {
117
- parsed['chunk-size'] = parseInt(value, 10);
118
- }
119
- else if (key === 'max-statements') {
120
- parsed['max-statements'] = parseInt(value, 10);
121
- }
122
- else if (key === 'db-path') {
123
- parsed['db-path'] = value;
124
- }
125
- else if (key === 'config') {
126
- parsed.config = value;
127
- }
128
- else if (key === 'on-conflict') {
129
- parsed['on-conflict'] = value;
130
- }
131
- else {
132
- parsed[key] = value;
133
- }
134
- // Only skip next arg if we used --key value format (not --key=value)
135
- if (!arg.includes('=')) {
136
- i++;
137
- }
86
+ else if (key === 'max-statements' || key === 'maxStatements') {
87
+ parsed['max-statements'] = parseInt(value, 10);
88
+ }
89
+ else if (key === 'on-conflict' || key === 'onConflict') {
90
+ parsed['on-conflict'] = value;
91
+ }
92
+ else if (key === 'db-path' || key === 'dbPath') {
93
+ parsed['db-path'] = value;
94
+ }
95
+ else if (key === 'config') {
96
+ parsed.config = value;
138
97
  }
98
+ else if (key === 'exclude-schema' || key === 'excludeSchema') {
99
+ parsed['exclude-schema'] = value === 'true' || value === '1';
100
+ }
101
+ }
102
+ else if (arg === 'help' || arg === '--help') {
103
+ parsed.help = true;
104
+ }
105
+ else if (!parsed.format && validFormats.includes(arg.toLowerCase())) {
106
+ // First positional: target format
107
+ parsed.format = arg.toLowerCase();
108
+ }
109
+ else if (parsed.format && !parsed.output && !arg.startsWith('-') && !arg.includes('=')) {
110
+ // Second positional: output file
111
+ parsed.output = arg;
139
112
  }
140
113
  }
141
114
  return parsed;
@@ -262,7 +235,9 @@ export async function executeDbDump(args) {
262
235
  const output = args.output;
263
236
  const tables = args.tables ? args.tables.split(',').map(t => t.trim()) : undefined;
264
237
  const chunkSize = args['chunk-size'] || 100;
265
- const conflictMode = args['on-conflict'] || 'error';
238
+ // MySQL/MariaDB: Default to 'ignore' due to case-insensitive collation (utf8mb4_unicode_ci)
239
+ // This prevents duplicate key errors when source DB has case-sensitive duplicates (e.g., 'dry' vs 'DRY')
240
+ const conflictMode = args['on-conflict'] || (format === 'mysql' ? 'ignore' : 'error');
266
241
  const includeSchema = !args['exclude-schema']; // Include schema by default
267
242
  // Load config file - prioritize: explicit --config > default locations
268
243
  console.error(`Loading config file...`);
@@ -1 +1 @@
1
- {"version":3,"file":"db-dump.js","sourceRoot":"","sources":["../../src/cli/db-dump.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-dump.js","sourceRoot":"","sources":["../../src/cli/db-dump.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ interface DbExportArgs {
15
15
  export declare function showDbExportHelp(): void;
16
16
  /**
17
17
  * Parse command-line arguments for db:export
18
+ * Supports key=value format (npm/PowerShell friendly)
18
19
  */
19
20
  export declare function parseDbExportArgs(args: string[]): DbExportArgs;
20
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"db-export.d.ts","sourceRoot":"","sources":["../../src/cli/db-export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAoDvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAyC9D;AAWD;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgIvE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE"}
1
+ {"version":3,"file":"db-export.d.ts","sourceRoot":"","sources":["../../src/cli/db-export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CA8BvC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CA2B9D;AAWD;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgIvE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE"}
@@ -12,99 +12,65 @@ import { loadConfigFile } from '../config/loader.js';
12
12
  * Show help message for db:export command
13
13
  */
14
14
  export function showDbExportHelp() {
15
- console.log(`
16
- sqlew db:export - Export project data to JSON format
17
-
18
- USAGE:
19
- npx sqlew db:export [options]
20
-
21
- OPTIONS:
22
- --project <name> Export specific project by name (required for multi-project databases)
23
- If not specified, exports all projects
24
- --output <file> Output file path (default: stdout)
25
- --db-path <path> SQLite database file path (overrides config file)
26
- --config <path> Config file path (default: auto-detect .sqlew/config.toml or config.toml)
27
- --help Show this help message
28
-
29
- CONFIG FILE:
30
- The command automatically loads database settings from config.toml.
31
- Priority: CLI args > config file > environment variables > defaults
32
-
33
- EXAMPLES:
34
- # Export specific project to file
35
- npx sqlew db:export --project=visualizer --output=visualizer-data.json
36
-
37
- # Export all projects
38
- npx sqlew db:export --output=full-backup.json
39
-
40
- # Export to stdout (pipe to file or another command)
41
- npx sqlew db:export --project=myproject
42
-
43
- # Export with explicit database path
44
- npx sqlew db:export --project=myproject --db-path=.sqlew/sqlew.db --output=data.json
45
-
46
- EXPORT FORMAT:
47
- The exported JSON contains:
48
- - Project metadata
49
- - Master tables (agents, files, tags, etc.) - only entries used by project
50
- - Transaction tables (decisions, tasks, constraints, etc.) - filtered by project_id
51
- - Statistics (decision count, task count, etc.)
52
-
53
- IMPORT WORKFLOW:
54
- 1. Export data from source database:
55
- npx sqlew db:export --project=visualizer --output=data.json
56
-
57
- 2. Copy JSON file to target project directory
58
-
59
- 3. Import data into target database:
60
- npx sqlew db:import --source=data.json --project-name=visualizer-v2
61
-
62
- SEE ALSO:
63
- npx sqlew db:dump --help # SQL export with schema (for full database migration)
64
- npx sqlew db:import --help # Import JSON data (append to existing database)
15
+ console.log(`
16
+ sqlew db:export - Export project data to JSON format
17
+
18
+ USAGE:
19
+ npm run db:export -- [output-file] [key=value ...]
20
+
21
+ ARGUMENTS:
22
+ [output-file] Output file (optional, default: stdout)
23
+
24
+ OPTIONS (use key=value format):
25
+ project=<name> Export specific project (default: all projects)
26
+ db-path=<path> SQLite database path
27
+ config=<path> Config file path
28
+
29
+ EXAMPLES:
30
+ # Export specific project
31
+ npm run db:export -- data.json project=myproject
32
+
33
+ # Export all projects
34
+ npm run db:export -- backup.json
35
+
36
+ # Export to stdout
37
+ npm run db:export -- project=myproject
38
+
39
+ WORKFLOW:
40
+ 1. Export: npm run db:export -- data.json project=myproject
41
+ 2. Copy JSON to target
42
+ 3. Import: npm run db:import -- data.json
65
43
  `);
66
44
  }
67
45
  /**
68
46
  * Parse command-line arguments for db:export
47
+ * Supports key=value format (npm/PowerShell friendly)
69
48
  */
70
49
  export function parseDbExportArgs(args) {
71
50
  const parsed = {};
72
51
  for (let i = 0; i < args.length; i++) {
73
52
  const arg = args[i];
74
- if (arg.startsWith('--')) {
75
- // Handle both --key=value and --key value formats
76
- let key;
77
- let value;
78
- if (arg.includes('=')) {
79
- // --key=value format
80
- const [k, ...v] = arg.slice(2).split('=');
81
- key = k;
82
- value = v.join('='); // Rejoin in case value contains '='
53
+ // Handle key=value format (without -- prefix, npm/PowerShell friendly)
54
+ if (arg.includes('=') && !arg.startsWith('-')) {
55
+ const [key, ...v] = arg.split('=');
56
+ const value = v.join('=');
57
+ if (key === 'project') {
58
+ parsed.project = value;
83
59
  }
84
- else {
85
- // --key value format
86
- key = arg.slice(2);
87
- value = args[i + 1];
88
- }
89
- if (key === 'help') {
90
- parsed.help = true;
60
+ else if (key === 'db-path' || key === 'dbPath') {
61
+ parsed['db-path'] = value;
91
62
  }
92
- else if (value && !value.startsWith('--')) {
93
- if (key === 'db-path') {
94
- parsed['db-path'] = value;
95
- }
96
- else if (key === 'config') {
97
- parsed.config = value;
98
- }
99
- else {
100
- parsed[key] = value;
101
- }
102
- // Only skip next arg if we used --key value format (not --key=value)
103
- if (!arg.includes('=')) {
104
- i++;
105
- }
63
+ else if (key === 'config') {
64
+ parsed.config = value;
106
65
  }
107
66
  }
67
+ else if (arg === 'help' || arg === '--help') {
68
+ parsed.help = true;
69
+ }
70
+ else if (!arg.startsWith('-') && !arg.includes('=') && !parsed.output) {
71
+ // Positional argument for output file
72
+ parsed.output = arg;
73
+ }
108
74
  }
109
75
  return parsed;
110
76
  }