162 lines
4.0 KiB
Markdown
162 lines
4.0 KiB
Markdown
# 📁 Folder Bookmarks Migration - Quick Start
|
|
|
|
This folder contains the migration tools to add folder bookmarking support to your existing NextAV instance.
|
|
|
|
## 🚀 Quick Migration (Recommended)
|
|
|
|
### For Docker Deployments
|
|
```bash
|
|
# 1. Navigate to your NextAV directory
|
|
cd /path/to/your/nextav
|
|
|
|
# 2. Pull the latest code with folder bookmark support
|
|
git pull origin main
|
|
|
|
# 3. Run the automated migration script
|
|
docker exec -it nextav-nextav-1 /bin/sh -c "cd /app && ./scripts/migrate-folder-bookmarks.sh"
|
|
|
|
# 4. Restart the application
|
|
docker-compose down
|
|
docker-compose up -d
|
|
```
|
|
|
|
### For Local Development
|
|
```bash
|
|
# 1. Navigate to your NextAV directory
|
|
cd /path/to/your/nextav
|
|
|
|
# 2. Pull the latest code
|
|
git pull origin main
|
|
|
|
# 3. Run the migration script
|
|
./scripts/migrate-folder-bookmarks.sh
|
|
|
|
# 4. Start the development server
|
|
pnpm dev
|
|
```
|
|
|
|
## 🔧 Manual Migration (Alternative)
|
|
|
|
If the automated script doesn't work for your setup, follow the manual process:
|
|
|
|
### Step 1: Backup Your Database
|
|
```bash
|
|
# Create a backup
|
|
cp data/media.db data/media.db.backup-$(date +%Y%m%d-%H%M%S)
|
|
```
|
|
|
|
### Step 2: Connect to Database
|
|
```bash
|
|
sqlite3 data/media.db
|
|
```
|
|
|
|
### Step 3: Execute Migration SQL
|
|
```sql
|
|
-- Create folder_bookmarks table
|
|
CREATE TABLE IF NOT EXISTS folder_bookmarks (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
folder_path TEXT NOT NULL UNIQUE,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Create index for performance
|
|
CREATE INDEX IF NOT EXISTS idx_folder_bookmarks_path ON folder_bookmarks(folder_path);
|
|
|
|
-- Verify creation
|
|
.tables
|
|
```
|
|
|
|
### Step 4: Exit and Restart
|
|
```sql
|
|
.quit
|
|
```
|
|
|
|
Then restart your application.
|
|
|
|
## ✅ Verification
|
|
|
|
After migration, verify everything works:
|
|
|
|
1. **Check API endpoints:**
|
|
```bash
|
|
curl http://localhost:3000/api/folder-bookmarks
|
|
curl http://localhost:3000/api/bookmarks
|
|
```
|
|
|
|
2. **Test UI functionality:**
|
|
- Navigate to any folder in the folder viewer
|
|
- Click the bookmark icon (should turn yellow)
|
|
- Go to Bookmarks page
|
|
- Verify folder bookmarks appear with folder icons
|
|
|
|
3. **Test navigation:**
|
|
- Click on a folder bookmark
|
|
- Verify it navigates to the correct folder
|
|
|
|
## 🔄 Rollback Instructions
|
|
|
|
If you need to rollback:
|
|
|
|
```bash
|
|
# 1. Stop the application
|
|
docker-compose down
|
|
|
|
# 2. Restore from backup
|
|
cp data/media.db.backup-[timestamp] data/media.db
|
|
|
|
# 3. Restart with previous code
|
|
git checkout [previous-commit-hash]
|
|
docker-compose up -d
|
|
```
|
|
|
|
## 📊 Migration Checklist
|
|
|
|
- [ ] Database backed up successfully
|
|
- [ ] Migration script executed without errors
|
|
- [ ] Application starts normally
|
|
- [ ] Folder bookmark API endpoints work
|
|
- [ ] UI shows bookmark buttons on folders
|
|
- [ ] Bookmarks page displays folder bookmarks
|
|
- [ ] Folder bookmark navigation works
|
|
- [ ] Existing media bookmarks still work
|
|
|
|
## 🆘 Troubleshooting
|
|
|
|
### "Database is locked"
|
|
- Ensure the application is stopped during migration
|
|
- Wait a few moments and try again
|
|
|
|
### "Permission denied"
|
|
```bash
|
|
chmod +x scripts/migrate-folder-bookmarks.sh
|
|
chmod 644 data/media.db
|
|
```
|
|
|
|
### "Table already exists"
|
|
- This is normal - the migration handles existing tables gracefully
|
|
|
|
### API endpoints return 404
|
|
- Ensure you restarted the application after code update
|
|
- Check application logs: `docker logs nextav-nextav-1`
|
|
|
|
## 📞 Support
|
|
|
|
If you encounter issues:
|
|
|
|
1. **Check the detailed migration guide:** `docs/DATABASE_MIGRATION_GUIDE.md`
|
|
2. **Verify your backup:** Ensure your backup file is valid
|
|
3. **Check logs:** Review application logs for error messages
|
|
4. **Test manually:** Use SQLite CLI to verify database state
|
|
|
|
## 📁 Files in This Directory
|
|
|
|
- `DATABASE_MIGRATION_GUIDE.md` - Detailed step-by-step migration guide
|
|
- `MIGRATION_README.md` - This quick start guide
|
|
- `../scripts/migrate-folder-bookmarks.sh` - Automated migration script
|
|
|
|
---
|
|
|
|
**🎉 Enjoy your new folder bookmarking feature!**
|
|
|
|
You can now bookmark important folders alongside your media files for quick access to frequently used directories. 📁✨ |