appwrite-utils-cli 1.5.1 → 1.6.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.
- package/CHANGELOG.md +199 -0
- package/README.md +251 -29
- package/dist/adapters/AdapterFactory.d.ts +10 -3
- package/dist/adapters/AdapterFactory.js +213 -17
- package/dist/adapters/TablesDBAdapter.js +60 -17
- package/dist/backups/operations/bucketBackup.d.ts +19 -0
- package/dist/backups/operations/bucketBackup.js +197 -0
- package/dist/backups/operations/collectionBackup.d.ts +30 -0
- package/dist/backups/operations/collectionBackup.js +201 -0
- package/dist/backups/operations/comprehensiveBackup.d.ts +25 -0
- package/dist/backups/operations/comprehensiveBackup.js +238 -0
- package/dist/backups/schemas/bucketManifest.d.ts +93 -0
- package/dist/backups/schemas/bucketManifest.js +33 -0
- package/dist/backups/schemas/comprehensiveManifest.d.ts +108 -0
- package/dist/backups/schemas/comprehensiveManifest.js +32 -0
- package/dist/backups/tracking/centralizedTracking.d.ts +34 -0
- package/dist/backups/tracking/centralizedTracking.js +274 -0
- package/dist/cli/commands/configCommands.d.ts +8 -0
- package/dist/cli/commands/configCommands.js +160 -0
- package/dist/cli/commands/databaseCommands.d.ts +13 -0
- package/dist/cli/commands/databaseCommands.js +478 -0
- package/dist/cli/commands/functionCommands.d.ts +7 -0
- package/dist/cli/commands/functionCommands.js +289 -0
- package/dist/cli/commands/schemaCommands.d.ts +7 -0
- package/dist/cli/commands/schemaCommands.js +134 -0
- package/dist/cli/commands/transferCommands.d.ts +5 -0
- package/dist/cli/commands/transferCommands.js +384 -0
- package/dist/collections/attributes.d.ts +5 -4
- package/dist/collections/attributes.js +539 -246
- package/dist/collections/indexes.js +39 -37
- package/dist/collections/methods.d.ts +2 -16
- package/dist/collections/methods.js +90 -538
- package/dist/collections/transferOperations.d.ts +7 -0
- package/dist/collections/transferOperations.js +331 -0
- package/dist/collections/wipeOperations.d.ts +16 -0
- package/dist/collections/wipeOperations.js +328 -0
- package/dist/config/configMigration.d.ts +87 -0
- package/dist/config/configMigration.js +390 -0
- package/dist/config/configValidation.d.ts +66 -0
- package/dist/config/configValidation.js +358 -0
- package/dist/config/yamlConfig.d.ts +455 -1
- package/dist/config/yamlConfig.js +145 -52
- package/dist/databases/methods.js +3 -2
- package/dist/databases/setup.d.ts +1 -2
- package/dist/databases/setup.js +9 -87
- package/dist/examples/yamlTerminologyExample.d.ts +42 -0
- package/dist/examples/yamlTerminologyExample.js +269 -0
- package/dist/functions/deployments.js +11 -10
- package/dist/functions/methods.d.ts +1 -1
- package/dist/functions/methods.js +5 -4
- package/dist/init.js +9 -9
- package/dist/interactiveCLI.d.ts +8 -17
- package/dist/interactiveCLI.js +186 -1171
- package/dist/main.js +364 -21
- package/dist/migrations/afterImportActions.js +22 -30
- package/dist/migrations/appwriteToX.js +71 -25
- package/dist/migrations/dataLoader.js +35 -26
- package/dist/migrations/importController.js +29 -30
- package/dist/migrations/relationships.js +13 -12
- package/dist/migrations/services/ImportOrchestrator.js +16 -19
- package/dist/migrations/transfer.js +46 -46
- package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +3 -1
- package/dist/migrations/yaml/YamlImportConfigLoader.js +6 -3
- package/dist/migrations/yaml/YamlImportIntegration.d.ts +9 -3
- package/dist/migrations/yaml/YamlImportIntegration.js +22 -11
- package/dist/migrations/yaml/generateImportSchemas.d.ts +14 -1
- package/dist/migrations/yaml/generateImportSchemas.js +736 -7
- package/dist/schemas/authUser.d.ts +1 -1
- package/dist/setupController.js +3 -2
- package/dist/shared/backupMetadataSchema.d.ts +94 -0
- package/dist/shared/backupMetadataSchema.js +38 -0
- package/dist/shared/backupTracking.d.ts +18 -0
- package/dist/shared/backupTracking.js +176 -0
- package/dist/shared/confirmationDialogs.js +15 -15
- package/dist/shared/errorUtils.d.ts +54 -0
- package/dist/shared/errorUtils.js +95 -0
- package/dist/shared/functionManager.js +20 -19
- package/dist/shared/indexManager.js +12 -11
- package/dist/shared/jsonSchemaGenerator.js +10 -26
- package/dist/shared/logging.d.ts +51 -0
- package/dist/shared/logging.js +70 -0
- package/dist/shared/messageFormatter.d.ts +2 -0
- package/dist/shared/messageFormatter.js +10 -0
- package/dist/shared/migrationHelpers.d.ts +6 -16
- package/dist/shared/migrationHelpers.js +24 -21
- package/dist/shared/operationLogger.d.ts +8 -1
- package/dist/shared/operationLogger.js +11 -24
- package/dist/shared/operationQueue.d.ts +28 -1
- package/dist/shared/operationQueue.js +268 -66
- package/dist/shared/operationsTable.d.ts +26 -0
- package/dist/shared/operationsTable.js +286 -0
- package/dist/shared/operationsTableSchema.d.ts +48 -0
- package/dist/shared/operationsTableSchema.js +35 -0
- package/dist/shared/relationshipExtractor.d.ts +56 -0
- package/dist/shared/relationshipExtractor.js +138 -0
- package/dist/shared/schemaGenerator.d.ts +19 -1
- package/dist/shared/schemaGenerator.js +56 -75
- package/dist/storage/backupCompression.d.ts +20 -0
- package/dist/storage/backupCompression.js +67 -0
- package/dist/storage/methods.d.ts +16 -2
- package/dist/storage/methods.js +98 -14
- package/dist/users/methods.js +9 -8
- package/dist/utils/configDiscovery.d.ts +78 -0
- package/dist/utils/configDiscovery.js +430 -0
- package/dist/utils/directoryUtils.d.ts +22 -0
- package/dist/utils/directoryUtils.js +59 -0
- package/dist/utils/getClientFromConfig.d.ts +17 -8
- package/dist/utils/getClientFromConfig.js +162 -17
- package/dist/utils/helperFunctions.d.ts +16 -2
- package/dist/utils/helperFunctions.js +19 -5
- package/dist/utils/loadConfigs.d.ts +34 -9
- package/dist/utils/loadConfigs.js +236 -316
- package/dist/utils/pathResolvers.d.ts +53 -0
- package/dist/utils/pathResolvers.js +72 -0
- package/dist/utils/projectConfig.d.ts +119 -0
- package/dist/utils/projectConfig.js +171 -0
- package/dist/utils/retryFailedPromises.js +4 -2
- package/dist/utils/sessionAuth.d.ts +48 -0
- package/dist/utils/sessionAuth.js +164 -0
- package/dist/utils/sessionPreservationExample.d.ts +1666 -0
- package/dist/utils/sessionPreservationExample.js +101 -0
- package/dist/utils/setupFiles.js +301 -41
- package/dist/utils/typeGuards.d.ts +35 -0
- package/dist/utils/typeGuards.js +57 -0
- package/dist/utils/versionDetection.js +145 -9
- package/dist/utils/yamlConverter.d.ts +53 -3
- package/dist/utils/yamlConverter.js +232 -13
- package/dist/utils/yamlLoader.d.ts +70 -0
- package/dist/utils/yamlLoader.js +263 -0
- package/dist/utilsController.d.ts +36 -3
- package/dist/utilsController.js +186 -56
- package/package.json +12 -2
- package/src/adapters/AdapterFactory.ts +263 -35
- package/src/adapters/TablesDBAdapter.ts +225 -36
- package/src/backups/operations/bucketBackup.ts +277 -0
- package/src/backups/operations/collectionBackup.ts +310 -0
- package/src/backups/operations/comprehensiveBackup.ts +342 -0
- package/src/backups/schemas/bucketManifest.ts +78 -0
- package/src/backups/schemas/comprehensiveManifest.ts +76 -0
- package/src/backups/tracking/centralizedTracking.ts +352 -0
- package/src/cli/commands/configCommands.ts +194 -0
- package/src/cli/commands/databaseCommands.ts +635 -0
- package/src/cli/commands/functionCommands.ts +379 -0
- package/src/cli/commands/schemaCommands.ts +163 -0
- package/src/cli/commands/transferCommands.ts +457 -0
- package/src/collections/attributes.ts +900 -621
- package/src/collections/attributes.ts.backup +1555 -0
- package/src/collections/indexes.ts +116 -114
- package/src/collections/methods.ts +295 -968
- package/src/collections/transferOperations.ts +516 -0
- package/src/collections/wipeOperations.ts +501 -0
- package/src/config/README.md +274 -0
- package/src/config/configMigration.ts +575 -0
- package/src/config/configValidation.ts +445 -0
- package/src/config/yamlConfig.ts +168 -55
- package/src/databases/methods.ts +3 -2
- package/src/databases/setup.ts +11 -138
- package/src/examples/yamlTerminologyExample.ts +341 -0
- package/src/functions/deployments.ts +14 -12
- package/src/functions/methods.ts +11 -11
- package/src/functions/templates/hono-typescript/README.md +286 -0
- package/src/functions/templates/hono-typescript/package.json +26 -0
- package/src/functions/templates/hono-typescript/src/adapters/request.ts +74 -0
- package/src/functions/templates/hono-typescript/src/adapters/response.ts +106 -0
- package/src/functions/templates/hono-typescript/src/app.ts +180 -0
- package/src/functions/templates/hono-typescript/src/context.ts +103 -0
- package/src/functions/templates/hono-typescript/src/index.ts +54 -0
- package/src/functions/templates/hono-typescript/src/middleware/appwrite.ts +119 -0
- package/src/functions/templates/hono-typescript/tsconfig.json +20 -0
- package/src/functions/templates/typescript-node/package.json +2 -1
- package/src/functions/templates/typescript-node/src/context.ts +103 -0
- package/src/functions/templates/typescript-node/src/index.ts +18 -12
- package/src/functions/templates/uv/pyproject.toml +1 -0
- package/src/functions/templates/uv/src/context.py +125 -0
- package/src/functions/templates/uv/src/index.py +35 -5
- package/src/init.ts +9 -11
- package/src/interactiveCLI.ts +276 -1591
- package/src/main.ts +418 -24
- package/src/migrations/afterImportActions.ts +71 -44
- package/src/migrations/appwriteToX.ts +100 -34
- package/src/migrations/dataLoader.ts +48 -34
- package/src/migrations/importController.ts +44 -39
- package/src/migrations/relationships.ts +28 -18
- package/src/migrations/services/ImportOrchestrator.ts +24 -27
- package/src/migrations/transfer.ts +159 -121
- package/src/migrations/yaml/YamlImportConfigLoader.ts +11 -4
- package/src/migrations/yaml/YamlImportIntegration.ts +47 -20
- package/src/migrations/yaml/generateImportSchemas.ts +751 -12
- package/src/setupController.ts +3 -2
- package/src/shared/backupMetadataSchema.ts +93 -0
- package/src/shared/backupTracking.ts +211 -0
- package/src/shared/confirmationDialogs.ts +19 -19
- package/src/shared/errorUtils.ts +110 -0
- package/src/shared/functionManager.ts +21 -20
- package/src/shared/indexManager.ts +12 -11
- package/src/shared/jsonSchemaGenerator.ts +38 -52
- package/src/shared/logging.ts +75 -0
- package/src/shared/messageFormatter.ts +14 -1
- package/src/shared/migrationHelpers.ts +45 -38
- package/src/shared/operationLogger.ts +11 -36
- package/src/shared/operationQueue.ts +322 -93
- package/src/shared/operationsTable.ts +338 -0
- package/src/shared/operationsTableSchema.ts +60 -0
- package/src/shared/relationshipExtractor.ts +214 -0
- package/src/shared/schemaGenerator.ts +179 -219
- package/src/storage/backupCompression.ts +88 -0
- package/src/storage/methods.ts +131 -34
- package/src/users/methods.ts +11 -9
- package/src/utils/configDiscovery.ts +502 -0
- package/src/utils/directoryUtils.ts +61 -0
- package/src/utils/getClientFromConfig.ts +205 -22
- package/src/utils/helperFunctions.ts +23 -5
- package/src/utils/loadConfigs.ts +313 -345
- package/src/utils/pathResolvers.ts +81 -0
- package/src/utils/projectConfig.ts +299 -0
- package/src/utils/retryFailedPromises.ts +4 -2
- package/src/utils/sessionAuth.ts +230 -0
- package/src/utils/setupFiles.ts +322 -54
- package/src/utils/typeGuards.ts +65 -0
- package/src/utils/versionDetection.ts +218 -64
- package/src/utils/yamlConverter.ts +296 -13
- package/src/utils/yamlLoader.ts +364 -0
- package/src/utilsController.ts +314 -110
- package/tests/README.md +497 -0
- package/tests/adapters/AdapterFactory.test.ts +277 -0
- package/tests/integration/syncOperations.test.ts +463 -0
- package/tests/jest.config.js +25 -0
- package/tests/migration/configMigration.test.ts +546 -0
- package/tests/setup.ts +62 -0
- package/tests/testUtils.ts +340 -0
- package/tests/utils/loadConfigs.test.ts +350 -0
- package/tests/validation/configValidation.test.ts +412 -0
- package/src/utils/schemaStrings.ts +0 -517
@@ -0,0 +1,274 @@
|
|
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.
|