2.1 KiB
Executable file
2.1 KiB
Executable file
Legacy Folder Migration Script
Purpose
This script migrates legacy folders to be compatible with the hierarchy system by adding missing fields required for drag & drop functionality.
The Problem
Legacy folders created before the hierarchy feature lack the level field, which causes:
folder.level === 0to evaluate asfalsecanReceiveDropto be disabled- Drag & drop functionality to not work
The Solution
The script adds these required fields to legacy folders:
level: 0(makes them root folders)parent_folder_id: nullcreated_by: <user_id>(if missing)created_at: <timestamp>(if missing)updated_at: <timestamp>
Usage
Dry Run (Preview Changes)
source venv/bin/activate
MONGO_PORT=27020 python migrate_legacy_folders.py --dry-run
Execute Migration
source venv/bin/activate
MONGO_PORT=27020 python migrate_legacy_folders.py
Environment Variables
MONGO_PORT: MongoDB port (default: 27017, but our setup uses 27020)MONGO_HOST: MongoDB host (default: localhost)MONGO_USER: MongoDB username (optional)MONGO_PASS: MongoDB password (optional)
Output Example
=== Legacy Folder Migration Script ===
Mode: DRY RUN
Connecting to MongoDB...
Connected to MongoDB without authentication
Looking up user ID for username 'user'...
Found user ID: 68ad9c39e191a669e9b40701
Searching for legacy folders...
Found 1 legacy folder(s) to migrate:
- gen prompts test (ID: 68adf75bfa4b13bb59140ce5)
--- DRY RUN MODE - No actual changes will be made ---
[1/1] Processing folder: gen prompts test
Adding level: 0
Adding parent_folder_id: None
[DRY RUN] Would update folder 'gen prompts test' with: {...}
--- MIGRATION COMPLETE ---
Successfully processed: 1/1 folders
Run without --dry-run flag to execute the actual migration.
Safety Features
- Dry run mode for testing
- Detailed logging of all operations
- Graceful error handling
- Atomic database updates
- Verification that all changes were successful
After Migration
Once the script runs successfully, all legacy folders will have proper drag & drop functionality in the UI.