@njdamstra/appwrite-utils-cli 1.8.9 → 1.10.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 (284) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CONFIG_TODO.md +1189 -0
  3. package/SELECTION_DIALOGS.md +146 -0
  4. package/SERVICE_IMPLEMENTATION_REPORT.md +462 -0
  5. package/dist/adapters/index.d.ts +7 -8
  6. package/dist/adapters/index.js +7 -9
  7. package/dist/backups/operations/bucketBackup.js +2 -2
  8. package/dist/backups/operations/collectionBackup.d.ts +1 -1
  9. package/dist/backups/operations/collectionBackup.js +3 -3
  10. package/dist/backups/operations/comprehensiveBackup.d.ts +1 -1
  11. package/dist/backups/operations/comprehensiveBackup.js +2 -2
  12. package/dist/backups/tracking/centralizedTracking.d.ts +1 -1
  13. package/dist/backups/tracking/centralizedTracking.js +2 -2
  14. package/dist/cli/commands/configCommands.js +51 -7
  15. package/dist/cli/commands/databaseCommands.d.ts +1 -0
  16. package/dist/cli/commands/databaseCommands.js +119 -9
  17. package/dist/cli/commands/functionCommands.js +3 -3
  18. package/dist/cli/commands/importFileCommands.d.ts +7 -0
  19. package/dist/cli/commands/importFileCommands.js +674 -0
  20. package/dist/cli/commands/schemaCommands.js +3 -3
  21. package/dist/cli/commands/storageCommands.js +2 -3
  22. package/dist/cli/commands/transferCommands.js +3 -5
  23. package/dist/collections/attributes.d.ts +1 -1
  24. package/dist/collections/attributes.js +2 -35
  25. package/dist/collections/indexes.js +1 -3
  26. package/dist/collections/methods.d.ts +1 -1
  27. package/dist/collections/methods.js +111 -192
  28. package/dist/collections/tableOperations.d.ts +1 -0
  29. package/dist/collections/tableOperations.js +55 -23
  30. package/dist/collections/transferOperations.d.ts +1 -1
  31. package/dist/collections/transferOperations.js +3 -4
  32. package/dist/collections/wipeOperations.d.ts +4 -3
  33. package/dist/collections/wipeOperations.js +112 -39
  34. package/dist/databases/methods.js +2 -2
  35. package/dist/databases/setup.js +2 -2
  36. package/dist/examples/yamlTerminologyExample.js +2 -2
  37. package/dist/functions/deployments.d.ts +1 -1
  38. package/dist/functions/deployments.js +5 -5
  39. package/dist/functions/fnConfigDiscovery.js +2 -2
  40. package/dist/functions/methods.js +16 -4
  41. package/dist/init.js +1 -1
  42. package/dist/interactiveCLI.d.ts +6 -1
  43. package/dist/interactiveCLI.js +63 -9
  44. package/dist/main.js +130 -177
  45. package/dist/migrations/afterImportActions.js +2 -3
  46. package/dist/migrations/appwriteToX.d.ts +1 -1
  47. package/dist/migrations/appwriteToX.js +9 -7
  48. package/dist/migrations/comprehensiveTransfer.js +3 -5
  49. package/dist/migrations/dataLoader.js +2 -5
  50. package/dist/migrations/importController.js +3 -4
  51. package/dist/migrations/importDataActions.js +3 -3
  52. package/dist/migrations/relationships.js +1 -2
  53. package/dist/migrations/services/DataTransformationService.js +2 -2
  54. package/dist/migrations/services/FileHandlerService.js +1 -1
  55. package/dist/migrations/services/ImportOrchestrator.js +4 -4
  56. package/dist/migrations/services/RateLimitManager.js +1 -1
  57. package/dist/migrations/services/RelationshipResolver.js +1 -1
  58. package/dist/migrations/services/UserMappingService.js +1 -1
  59. package/dist/migrations/services/ValidationService.js +1 -1
  60. package/dist/migrations/transfer.d.ts +8 -4
  61. package/dist/migrations/transfer.js +106 -55
  62. package/dist/migrations/yaml/YamlImportConfigLoader.js +1 -1
  63. package/dist/migrations/yaml/YamlImportIntegration.js +2 -2
  64. package/dist/migrations/yaml/generateImportSchemas.js +1 -1
  65. package/dist/setupCommands.d.ts +1 -1
  66. package/dist/setupCommands.js +5 -6
  67. package/dist/setupController.js +1 -1
  68. package/dist/shared/backupTracking.d.ts +1 -1
  69. package/dist/shared/backupTracking.js +2 -2
  70. package/dist/shared/confirmationDialogs.js +1 -1
  71. package/dist/shared/migrationHelpers.d.ts +1 -1
  72. package/dist/shared/migrationHelpers.js +3 -3
  73. package/dist/shared/operationQueue.d.ts +1 -1
  74. package/dist/shared/operationQueue.js +2 -3
  75. package/dist/shared/operationsTable.d.ts +1 -1
  76. package/dist/shared/operationsTable.js +2 -2
  77. package/dist/shared/progressManager.js +1 -1
  78. package/dist/shared/selectionDialogs.js +9 -8
  79. package/dist/storage/methods.js +4 -4
  80. package/dist/storage/schemas.d.ts +2 -2
  81. package/dist/tables/indexManager.d.ts +65 -0
  82. package/dist/tables/indexManager.js +294 -0
  83. package/dist/types.d.ts +2 -2
  84. package/dist/types.js +1 -1
  85. package/dist/users/methods.js +2 -3
  86. package/dist/utils/configMigration.js +1 -1
  87. package/dist/utils/index.d.ts +1 -1
  88. package/dist/utils/index.js +1 -1
  89. package/dist/utils/loadConfigs.d.ts +2 -2
  90. package/dist/utils/loadConfigs.js +6 -7
  91. package/dist/utils/setupFiles.js +5 -7
  92. package/dist/utilsController.d.ts +15 -8
  93. package/dist/utilsController.js +57 -28
  94. package/package.json +7 -3
  95. package/src/adapters/index.ts +8 -34
  96. package/src/backups/operations/bucketBackup.ts +2 -2
  97. package/src/backups/operations/collectionBackup.ts +4 -4
  98. package/src/backups/operations/comprehensiveBackup.ts +3 -3
  99. package/src/backups/tracking/centralizedTracking.ts +3 -3
  100. package/src/cli/commands/configCommands.ts +72 -8
  101. package/src/cli/commands/databaseCommands.ts +161 -9
  102. package/src/cli/commands/functionCommands.ts +4 -3
  103. package/src/cli/commands/importFileCommands.ts +815 -0
  104. package/src/cli/commands/schemaCommands.ts +3 -3
  105. package/src/cli/commands/storageCommands.ts +2 -3
  106. package/src/cli/commands/transferCommands.ts +3 -6
  107. package/src/collections/attributes.ts +3 -39
  108. package/src/collections/indexes.ts +2 -4
  109. package/src/collections/methods.ts +115 -150
  110. package/src/collections/tableOperations.ts +57 -21
  111. package/src/collections/transferOperations.ts +4 -5
  112. package/src/collections/wipeOperations.ts +154 -51
  113. package/src/databases/methods.ts +2 -2
  114. package/src/databases/setup.ts +2 -2
  115. package/src/examples/yamlTerminologyExample.ts +2 -2
  116. package/src/functions/deployments.ts +6 -5
  117. package/src/functions/fnConfigDiscovery.ts +2 -2
  118. package/src/functions/methods.ts +17 -4
  119. package/src/init.ts +1 -1
  120. package/src/interactiveCLI.ts +75 -10
  121. package/src/main.ts +143 -287
  122. package/src/migrations/afterImportActions.ts +2 -3
  123. package/src/migrations/appwriteToX.ts +12 -8
  124. package/src/migrations/comprehensiveTransfer.ts +6 -6
  125. package/src/migrations/dataLoader.ts +2 -5
  126. package/src/migrations/importController.ts +3 -4
  127. package/src/migrations/importDataActions.ts +3 -3
  128. package/src/migrations/relationships.ts +1 -2
  129. package/src/migrations/services/DataTransformationService.ts +2 -2
  130. package/src/migrations/services/FileHandlerService.ts +1 -1
  131. package/src/migrations/services/ImportOrchestrator.ts +4 -4
  132. package/src/migrations/services/RateLimitManager.ts +1 -1
  133. package/src/migrations/services/RelationshipResolver.ts +1 -1
  134. package/src/migrations/services/UserMappingService.ts +1 -1
  135. package/src/migrations/services/ValidationService.ts +1 -1
  136. package/src/migrations/transfer.ts +126 -83
  137. package/src/migrations/yaml/YamlImportConfigLoader.ts +1 -1
  138. package/src/migrations/yaml/YamlImportIntegration.ts +2 -2
  139. package/src/migrations/yaml/generateImportSchemas.ts +1 -1
  140. package/src/setupCommands.ts +5 -6
  141. package/src/setupController.ts +1 -1
  142. package/src/shared/backupTracking.ts +3 -3
  143. package/src/shared/confirmationDialogs.ts +1 -1
  144. package/src/shared/migrationHelpers.ts +4 -4
  145. package/src/shared/operationQueue.ts +3 -4
  146. package/src/shared/operationsTable.ts +3 -3
  147. package/src/shared/progressManager.ts +1 -1
  148. package/src/shared/selectionDialogs.ts +9 -8
  149. package/src/storage/methods.ts +4 -4
  150. package/src/tables/indexManager.ts +409 -0
  151. package/src/types.ts +2 -2
  152. package/src/users/methods.ts +2 -3
  153. package/src/utils/configMigration.ts +1 -1
  154. package/src/utils/index.ts +1 -1
  155. package/src/utils/loadConfigs.ts +15 -7
  156. package/src/utils/setupFiles.ts +5 -7
  157. package/src/utilsController.ts +86 -32
  158. package/dist/adapters/AdapterFactory.d.ts +0 -94
  159. package/dist/adapters/AdapterFactory.js +0 -405
  160. package/dist/adapters/DatabaseAdapter.d.ts +0 -233
  161. package/dist/adapters/DatabaseAdapter.js +0 -50
  162. package/dist/adapters/LegacyAdapter.d.ts +0 -50
  163. package/dist/adapters/LegacyAdapter.js +0 -612
  164. package/dist/adapters/TablesDBAdapter.d.ts +0 -45
  165. package/dist/adapters/TablesDBAdapter.js +0 -571
  166. package/dist/config/ConfigManager.d.ts +0 -445
  167. package/dist/config/ConfigManager.js +0 -625
  168. package/dist/config/configMigration.d.ts +0 -87
  169. package/dist/config/configMigration.js +0 -390
  170. package/dist/config/configValidation.d.ts +0 -66
  171. package/dist/config/configValidation.js +0 -358
  172. package/dist/config/index.d.ts +0 -8
  173. package/dist/config/index.js +0 -7
  174. package/dist/config/services/ConfigDiscoveryService.d.ts +0 -126
  175. package/dist/config/services/ConfigDiscoveryService.js +0 -374
  176. package/dist/config/services/ConfigLoaderService.d.ts +0 -129
  177. package/dist/config/services/ConfigLoaderService.js +0 -540
  178. package/dist/config/services/ConfigMergeService.d.ts +0 -208
  179. package/dist/config/services/ConfigMergeService.js +0 -308
  180. package/dist/config/services/ConfigValidationService.d.ts +0 -214
  181. package/dist/config/services/ConfigValidationService.js +0 -310
  182. package/dist/config/services/SessionAuthService.d.ts +0 -225
  183. package/dist/config/services/SessionAuthService.js +0 -456
  184. package/dist/config/services/__tests__/ConfigMergeService.test.d.ts +0 -1
  185. package/dist/config/services/__tests__/ConfigMergeService.test.js +0 -271
  186. package/dist/config/services/index.d.ts +0 -13
  187. package/dist/config/services/index.js +0 -10
  188. package/dist/config/yamlConfig.d.ts +0 -722
  189. package/dist/config/yamlConfig.js +0 -702
  190. package/dist/functions/pathResolution.d.ts +0 -37
  191. package/dist/functions/pathResolution.js +0 -185
  192. package/dist/shared/attributeMapper.d.ts +0 -20
  193. package/dist/shared/attributeMapper.js +0 -203
  194. package/dist/shared/errorUtils.d.ts +0 -54
  195. package/dist/shared/errorUtils.js +0 -95
  196. package/dist/shared/functionManager.d.ts +0 -48
  197. package/dist/shared/functionManager.js +0 -336
  198. package/dist/shared/indexManager.d.ts +0 -24
  199. package/dist/shared/indexManager.js +0 -151
  200. package/dist/shared/jsonSchemaGenerator.d.ts +0 -50
  201. package/dist/shared/jsonSchemaGenerator.js +0 -290
  202. package/dist/shared/logging.d.ts +0 -61
  203. package/dist/shared/logging.js +0 -116
  204. package/dist/shared/messageFormatter.d.ts +0 -39
  205. package/dist/shared/messageFormatter.js +0 -162
  206. package/dist/shared/pydanticModelGenerator.d.ts +0 -17
  207. package/dist/shared/pydanticModelGenerator.js +0 -615
  208. package/dist/shared/schemaGenerator.d.ts +0 -40
  209. package/dist/shared/schemaGenerator.js +0 -556
  210. package/dist/utils/ClientFactory.d.ts +0 -87
  211. package/dist/utils/ClientFactory.js +0 -212
  212. package/dist/utils/configDiscovery.d.ts +0 -78
  213. package/dist/utils/configDiscovery.js +0 -472
  214. package/dist/utils/constantsGenerator.d.ts +0 -31
  215. package/dist/utils/constantsGenerator.js +0 -321
  216. package/dist/utils/dataConverters.d.ts +0 -46
  217. package/dist/utils/dataConverters.js +0 -139
  218. package/dist/utils/directoryUtils.d.ts +0 -22
  219. package/dist/utils/directoryUtils.js +0 -59
  220. package/dist/utils/getClientFromConfig.d.ts +0 -39
  221. package/dist/utils/getClientFromConfig.js +0 -199
  222. package/dist/utils/helperFunctions.d.ts +0 -63
  223. package/dist/utils/helperFunctions.js +0 -156
  224. package/dist/utils/pathResolvers.d.ts +0 -53
  225. package/dist/utils/pathResolvers.js +0 -72
  226. package/dist/utils/projectConfig.d.ts +0 -119
  227. package/dist/utils/projectConfig.js +0 -171
  228. package/dist/utils/retryFailedPromises.d.ts +0 -2
  229. package/dist/utils/retryFailedPromises.js +0 -23
  230. package/dist/utils/sessionAuth.d.ts +0 -48
  231. package/dist/utils/sessionAuth.js +0 -164
  232. package/dist/utils/typeGuards.d.ts +0 -35
  233. package/dist/utils/typeGuards.js +0 -57
  234. package/dist/utils/validationRules.d.ts +0 -43
  235. package/dist/utils/validationRules.js +0 -42
  236. package/dist/utils/versionDetection.d.ts +0 -58
  237. package/dist/utils/versionDetection.js +0 -251
  238. package/dist/utils/yamlConverter.d.ts +0 -100
  239. package/dist/utils/yamlConverter.js +0 -428
  240. package/dist/utils/yamlLoader.d.ts +0 -70
  241. package/dist/utils/yamlLoader.js +0 -267
  242. package/src/adapters/AdapterFactory.ts +0 -510
  243. package/src/adapters/DatabaseAdapter.ts +0 -306
  244. package/src/adapters/LegacyAdapter.ts +0 -841
  245. package/src/adapters/TablesDBAdapter.ts +0 -773
  246. package/src/config/ConfigManager.ts +0 -808
  247. package/src/config/README.md +0 -274
  248. package/src/config/configMigration.ts +0 -575
  249. package/src/config/configValidation.ts +0 -445
  250. package/src/config/index.ts +0 -10
  251. package/src/config/services/ConfigDiscoveryService.ts +0 -463
  252. package/src/config/services/ConfigLoaderService.ts +0 -740
  253. package/src/config/services/ConfigMergeService.ts +0 -388
  254. package/src/config/services/ConfigValidationService.ts +0 -394
  255. package/src/config/services/SessionAuthService.ts +0 -565
  256. package/src/config/services/__tests__/ConfigMergeService.test.ts +0 -351
  257. package/src/config/services/index.ts +0 -29
  258. package/src/config/yamlConfig.ts +0 -761
  259. package/src/functions/pathResolution.ts +0 -227
  260. package/src/shared/attributeMapper.ts +0 -229
  261. package/src/shared/errorUtils.ts +0 -110
  262. package/src/shared/functionManager.ts +0 -525
  263. package/src/shared/indexManager.ts +0 -254
  264. package/src/shared/jsonSchemaGenerator.ts +0 -383
  265. package/src/shared/logging.ts +0 -149
  266. package/src/shared/messageFormatter.ts +0 -208
  267. package/src/shared/pydanticModelGenerator.ts +0 -618
  268. package/src/shared/schemaGenerator.ts +0 -644
  269. package/src/utils/ClientFactory.ts +0 -240
  270. package/src/utils/configDiscovery.ts +0 -557
  271. package/src/utils/constantsGenerator.ts +0 -369
  272. package/src/utils/dataConverters.ts +0 -159
  273. package/src/utils/directoryUtils.ts +0 -61
  274. package/src/utils/getClientFromConfig.ts +0 -257
  275. package/src/utils/helperFunctions.ts +0 -228
  276. package/src/utils/pathResolvers.ts +0 -81
  277. package/src/utils/projectConfig.ts +0 -299
  278. package/src/utils/retryFailedPromises.ts +0 -29
  279. package/src/utils/sessionAuth.ts +0 -230
  280. package/src/utils/typeGuards.ts +0 -65
  281. package/src/utils/validationRules.ts +0 -88
  282. package/src/utils/versionDetection.ts +0 -292
  283. package/src/utils/yamlConverter.ts +0 -542
  284. package/src/utils/yamlLoader.ts +0 -371
@@ -1,274 +0,0 @@
1
- # Configuration Validation & Migration Utilities
2
-
3
- This module provides comprehensive validation and migration utilities for the enhanced collections/tables dual config schema in appwrite-utils-cli.
4
-
5
- ## Features
6
-
7
- ### Configuration Validation
8
- - **Naming Conflict Detection**: Detects conflicts between collections and tables
9
- - **Database Reference Validation**: Validates database ID references
10
- - **Schema Consistency Checks**: Ensures internal consistency and best practices
11
- - **Strict Mode**: Option to treat warnings as errors for CI/CD pipelines
12
-
13
- ### Migration Utilities
14
- - **Collections to Tables Migration**: Convert collections to tables format for TablesDB API compatibility
15
- - **Multiple Migration Strategies**: Full migration, dual format, incremental, and tables-only
16
- - **Migration Planning**: Analyze changes before execution
17
- - **Backup Support**: Automatic backup creation during migration
18
- - **Validation Integration**: Validate results after migration
19
-
20
- ## Usage
21
-
22
- ### CLI Commands
23
-
24
- #### Validate Configuration
25
- ```bash
26
- # Basic validation
27
- npx appwrite-migrate --validate
28
-
29
- # Strict validation (warnings become errors)
30
- npx appwrite-migrate --validate-strict
31
-
32
- # Migrate collections to tables
33
- npx appwrite-migrate --migrate-collections-to-tables
34
- ```
35
-
36
- #### Interactive CLI
37
- ```bash
38
- # Launch interactive mode
39
- npx appwrite-migrate --it
40
-
41
- # Select from menu:
42
- # ✅ Validate configuration (collections/tables conflicts)
43
- # 🔀 Migrate collections to tables format
44
- ```
45
-
46
- ### Programmatic Usage
47
-
48
- #### Configuration Validation
49
-
50
- ```typescript
51
- import { validateCollectionsTablesConfig, reportValidationResults } from "./configValidation.js";
52
- import { loadConfig } from "../utils/loadConfigs.js";
53
-
54
- // Load and validate configuration
55
- const config = await loadConfig(".", { validate: true, reportValidation: true });
56
-
57
- // Manual validation
58
- const validation = validateCollectionsTablesConfig(config);
59
- reportValidationResults(validation, { verbose: true });
60
-
61
- if (!validation.isValid) {
62
- console.error(`Found ${validation.errors.length} validation errors`);
63
- process.exit(1);
64
- }
65
- ```
66
-
67
- #### Collections to Tables Migration
68
-
69
- ```typescript
70
- import {
71
- createMigrationPlan,
72
- executeMigrationPlan,
73
- migrateCollectionsToTables
74
- } from "./configMigration.js";
75
-
76
- // Simple migration
77
- const result = migrateCollectionsToTables(config, {
78
- strategy: "full_migration",
79
- validateResult: true,
80
- dryRun: false
81
- });
82
-
83
- // Advanced migration with planning
84
- const plan = createMigrationPlan(config, "dual_format");
85
- console.log(`Will migrate ${plan.collectionsToMigrate.length} collections`);
86
-
87
- const result = executeMigrationPlan(config, plan, {
88
- validateResult: true,
89
- backupConfig: true
90
- });
91
- ```
92
-
93
- ## Validation Rules
94
-
95
- ### Naming Conflicts
96
- - **Collection/Table Names**: Same names cannot exist in both arrays
97
- - **Collection/Table IDs**: Same IDs cannot exist in both arrays
98
- - **Within Arrays**: No duplicate names or IDs within the same array
99
-
100
- ### Database References
101
- - **Valid Database IDs**: All referenced database IDs must exist in databases array
102
- - **Optional References**: Missing databaseId is allowed for backward compatibility
103
-
104
- ### Schema Consistency
105
- - **Mixed Usage Warning**: Using both collections and tables with auto API mode
106
- - **Migration Suggestions**: Recommends migrating to tables for newer Appwrite versions
107
- - **Relationship Validation**: Checks relationship attributes for potential issues
108
-
109
- ## Migration Strategies
110
-
111
- ### Full Migration
112
- - Converts all collections to tables
113
- - Removes collections array
114
- - Best for new projects moving to TablesDB API
115
-
116
- ### Dual Format
117
- - Keeps both collections and tables
118
- - Useful for gradual transition
119
- - Higher maintenance overhead
120
-
121
- ### Incremental
122
- - Migrates specific collections only
123
- - Good for large projects
124
- - Allows staged migration
125
-
126
- ### Tables Only
127
- - Creates tables-only configuration
128
- - Removes collections array entirely
129
- - Clean slate approach
130
-
131
- ## Error Types
132
-
133
- ### Validation Errors
134
- - `naming_conflict`: Same names/IDs in collections and tables
135
- - `invalid_database_reference`: References to non-existent databases
136
- - `missing_required_field`: Missing required fields in definitions
137
- - `schema_inconsistency`: Configuration inconsistencies
138
- - `duplicate_definition`: Duplicates within same array
139
-
140
- ### Migration Warnings
141
- - Complex relationships requiring manual review
142
- - Large migrations requiring careful testing
143
- - API mode configuration recommendations
144
-
145
- ## Configuration Examples
146
-
147
- ### Valid Dual Configuration
148
- ```typescript
149
- const config: AppwriteConfig = {
150
- // ... other config
151
- collections: [
152
- {
153
- name: "Users",
154
- $id: "users",
155
- // ... collection definition
156
- }
157
- ],
158
- tables: [
159
- {
160
- name: "Products", // Different name - no conflict
161
- tableId: "products",
162
- // ... table definition
163
- }
164
- ],
165
- apiMode: "auto" // Will handle both APIs
166
- };
167
- ```
168
-
169
- ### Configuration with Conflicts (Invalid)
170
- ```typescript
171
- const config: AppwriteConfig = {
172
- // ... other config
173
- collections: [
174
- {
175
- name: "Users",
176
- $id: "users",
177
- // ... collection definition
178
- }
179
- ],
180
- tables: [
181
- {
182
- name: "Users", // ❌ Conflict: same name as collection
183
- tableId: "users", // ❌ Conflict: same ID as collection
184
- // ... table definition
185
- }
186
- ]
187
- };
188
- ```
189
-
190
- ## Integration with Existing Workflows
191
-
192
- ### Config Loading
193
- ```typescript
194
- // Automatic validation during config loading
195
- const config = await loadConfig(".", {
196
- validate: true,
197
- strictMode: false,
198
- reportValidation: true
199
- });
200
- ```
201
-
202
- ### UtilsController Integration
203
- ```typescript
204
- const controller = new UtilsController(process.cwd());
205
-
206
- // Initialize with validation
207
- await controller.init({ validate: true, strictMode: false });
208
-
209
- // Manual validation
210
- const validation = await controller.validateConfiguration();
211
- ```
212
-
213
- ### CLI Integration
214
- ```typescript
215
- // Interactive CLI includes validation and migration options
216
- const cli = new InteractiveCLI(process.cwd());
217
- await cli.run();
218
-
219
- // Options:
220
- // ✅ Validate configuration (collections/tables conflicts)
221
- // 🔀 Migrate collections to tables format
222
- ```
223
-
224
- ## Best Practices
225
-
226
- 1. **Always Validate**: Run validation before deploying configurations
227
- 2. **Use Strict Mode in CI**: Catch warnings early in automated pipelines
228
- 3. **Plan Migrations**: Use migration planning to understand changes
229
- 4. **Backup First**: Create backups before major migrations
230
- 5. **Test Incrementally**: Use incremental migration for large projects
231
- 6. **Monitor API Mode**: Set explicit apiMode after migration
232
-
233
- ## Troubleshooting
234
-
235
- ### Common Issues
236
-
237
- #### Naming Conflicts
238
- ```bash
239
- Error: Naming conflict detected: 'Users'
240
- Details: Table 'Users' has the same name as a collection
241
- Suggestion: Rename one of the conflicting items to avoid confusion
242
- ```
243
- **Solution**: Rename either the collection or table to have unique names.
244
-
245
- #### Invalid Database References
246
- ```bash
247
- Error: Collection 'Posts' references invalid database 'blog'
248
- Details: Database 'blog' is not defined in the databases array
249
- Suggestion: Add database with $id 'blog' to the databases array
250
- ```
251
- **Solution**: Add the referenced database to the databases array.
252
-
253
- #### Migration Complexity Warnings
254
- ```bash
255
- Warning: Large migration may require careful testing and staged deployment
256
- Recommendation: Consider incremental migration for large projects
257
- ```
258
- **Solution**: Use incremental migration strategy or break into smaller batches.
259
-
260
- ### Debug Mode
261
- Enable verbose logging to see detailed validation and migration information:
262
-
263
- ```typescript
264
- // Enable verbose validation reporting
265
- reportValidationResults(validation, { verbose: true });
266
-
267
- // Enable detailed migration logging
268
- const result = executeMigrationPlan(config, plan, {
269
- validateResult: true,
270
- dryRun: true // Test first
271
- });
272
- ```
273
-
274
- This comprehensive validation and migration system ensures smooth transitions between collections and tables while maintaining data integrity and configuration consistency.