ابزارهای کاربردی برای مدیریت و تعمیر پایگاه داده X-UI
این مجموعه ابزار برای حل مشکلات رایج پایگاه داده X-UI طراحی شده است. اولین و مهمترین مشکلی که حل میکند، خطای NULL emails است که باعث crash شدن X-UI میشود.
خطای معروف X-UI:
sql: Scan error on column index 0, name "JSON_EXTRACT(client.value, '$.email')":
converting NULL to string is unsupported
# دانلود و اجرای سریع
curl -O https://raw.githubusercontent.com/itum/xui-db/main/fix_null_emails.sh
chmod +x fix_null_emails.sh
./fix_null_emails.shیا با Python:
curl -O https://raw.githubusercontent.com/itum/xui-db/main/fix_null_emails.py
python3 fix_null_emails.py| فایل | توضیح | زبان |
|---|---|---|
fix_null_emails.py |
اسکریپت Python کامل و پیشرفته | Python 3.6+ |
fix_null_emails.sh |
اسکریپت Bash سریع و ساده | Bash |
README_null_email_fix.md |
راهنمای تفصیلی مشکل null emails | - |
# دانلود اسکریپت Python
wget https://raw.githubusercontent.com/itum/xui-db/main/fix_null_emails.py
chmod +x fix_null_emails.py
# دانلود اسکریپت Bash
wget https://raw.githubusercontent.com/itum/xui-db/main/fix_null_emails.sh
chmod +x fix_null_emails.shgit clone https://github.com/itum/xui-db.git
cd xui-db
chmod +x *.py *.sh# متوقف کردن X-UI
systemctl stop x-ui
# اجرای اسکریپت (خودکار فایل پیدا میکند)
./fix_null_emails.py
# یا مشخص کردن مسیر
./fix_null_emails.py /etc/x-ui/x-ui.db
# راهاندازی مجدد X-UI
systemctl start x-ui- 🛡️ امن: Backup خودکار قبل از تغییرات
- 🔍 هوشمند: تشخیص خودکار مسیر فایل
- ✋ کنترلشده: تأیید کاربر قبل از تعمیر
- 🧪 تستشده: راستیآزمایی بعد از تعمیر
- 📊 گزارشگر: نمایش جزئیات کامل عملیات
- 🌐 چندزبانه: پشتیبانی از متن فارسی و انگلیسی
اسکریپتها خودکار در این مسیرها جستجو میکنند:
./x-ui.db/etc/x-ui/x-ui.db./x-ui*.db(فایلهای شمارهگذاری شده)
============================================================
🔧 اسکریپت حل مشکل NULL Emails در x-ui
============================================================
📁 فایل پایگاه داده: /etc/x-ui/x-ui.db
✅ Backup ایجاد شد: /etc/x-ui/x-ui.db.backup_1752506826
🔍 جستجوی null emails...
⚠️ 2 رکورد با null email پیدا شد:
- رکورد ID: 5
- رکورد ID: 12
🔧 آیا میخواهی 2 رکورد را تعمیر کنم؟ (Y/n): Y
🔧 در حال تعمیر...
✅ 2 رکورد با موفقیت تعمیر شد!
✅ JSON_EXTRACT اکنون بدون مشکل کار میکند!
============================================================
- همیشه X-UI را متوقف کنید قبل از اجرای اسکریپت
- Backup خودکار ایجاد میشود، اما backup دستی هم توصیه میشود
- دسترسی root ممکن است نیاز باشد
- برای سرور production، ابتدا روی test environment تست کنید
خطای دسترسی:
sudo ./fix_null_emails.pyفایل پیدا نمیشود:
./fix_null_emails.py /مسیر/کامل/x-ui.dbخطای SQLite:
- مطمئن شوید X-UI متوقف است
- فایل پایگاه داده corrupt نباشد
برای مشارکت در توسعه:
- Fork کنید
- Feature branch ایجاد کنید (
git checkout -b feature/AmazingFeature) - Commit کنید (
git commit -m 'Add some AmazingFeature') - Push کنید (
git push origin feature/AmazingFeature) - Pull Request ایجاد کنید
این پروژه تحت لیسانس MIT منتشر شده است. فایل LICENSE را ببینید.
- 🐛 Bug Report: Issues
- 💡 Feature Request: Issues
- 📖 راهنمای تفصیلی: README_null_email_fix.md
اگر این ابزار برایتان مفید بود، لطفاً ستاره بدید! ⭐
نکته: این ابزارها مخصوص X-UI panel هستند و با سایر پنلها سازگار نیستند.