Update to v2.1.1 - Clean Design
This commit is contained in:
parent
de25b3e19c
commit
709f362194
20 changed files with 8127 additions and 191 deletions
129
IMMEDIATE_FIX.md
Normal file
129
IMMEDIATE_FIX.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# 🚑 OKAMŽITÁ OPRAVA - Database Path Error
|
||||
|
||||
## Problém
|
||||
```
|
||||
sqlite3.OperationalError: unable to open database file
|
||||
```
|
||||
|
||||
## ⚡ Rychlé Řešení (30 sekund)
|
||||
|
||||
### Varianta 1: Automatická oprava
|
||||
```bash
|
||||
cd ~/urio
|
||||
python3 fix_db_path.py
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
### Varianta 2: Manuální oprava
|
||||
```bash
|
||||
cd ~/urio
|
||||
|
||||
# Přidej do main.py hned za class Config:
|
||||
# Najdi tuto řádku (řádek ~33):
|
||||
# SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL", "sqlite:///instance/transfer_stats.db")
|
||||
#
|
||||
# A nahraď ji tímto (3 řádky):
|
||||
# BASE_DIR = os.path.abspath(os.path.dirname(__file__))
|
||||
# INSTANCE_DIR = os.path.join(BASE_DIR, 'instance')
|
||||
# SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL", f"sqlite:///{os.path.join(INSTANCE_DIR, 'transfer_stats.db')}")
|
||||
```
|
||||
|
||||
### Varianta 3: Použij opravený soubor
|
||||
```bash
|
||||
cd ~/urio
|
||||
|
||||
# Stáhni znovu main_enhanced.py z outputs/
|
||||
# A přepiš jím současný main.py
|
||||
mv main.py main.py.broken
|
||||
cp /path/to/main_enhanced.py main.py
|
||||
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
## 🔍 Co je problém?
|
||||
|
||||
SQLAlchemy používá relativní cestu `sqlite:///instance/transfer_stats.db`, ale instance folder neexistuje v době, kdy se SQLAlchemy inicializuje.
|
||||
|
||||
## ✅ Co oprava dělá?
|
||||
|
||||
1. **Použije absolutní cestu** místo relativní
|
||||
2. **Vytvoří instance/ folder** PŘED inicializací SQLAlchemy
|
||||
3. **Nastaví správnou cestu** k databázi
|
||||
|
||||
## 📝 Změny v kódu
|
||||
|
||||
### PŘED (nefungující):
|
||||
```python
|
||||
class Config:
|
||||
SQLALCHEMY_DATABASE_URI = "sqlite:///instance/transfer_stats.db"
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(Config)
|
||||
# instance folder se vytváří tady ← TOO LATE!
|
||||
```
|
||||
|
||||
### PO (fungující):
|
||||
```python
|
||||
class Config:
|
||||
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
|
||||
INSTANCE_DIR = os.path.join(BASE_DIR, 'instance')
|
||||
SQLALCHEMY_DATABASE_URI = f"sqlite:///{os.path.join(INSTANCE_DIR, 'transfer_stats.db')}"
|
||||
|
||||
# instance folder se vytváří tady ← BEFORE app init!
|
||||
if not os.path.exists(Config.INSTANCE_DIR):
|
||||
os.makedirs(Config.INSTANCE_DIR)
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(Config)
|
||||
```
|
||||
|
||||
## 🎯 Ověření
|
||||
|
||||
Po opravě by měl výstup vypadat takto:
|
||||
```bash
|
||||
$ python3 main.py
|
||||
2025-11-21 12:20:51,319 - INFO - Successfully loaded world map GeoJSON data.
|
||||
2025-11-21 12:20:51,450 - INFO - Scheduler started
|
||||
* Serving Flask app 'main'
|
||||
* Running on http://0.0.0.0:90
|
||||
```
|
||||
|
||||
✅ Bez chyby "unable to open database file"!
|
||||
|
||||
## 🆘 Stále nefunguje?
|
||||
|
||||
Zkontroluj:
|
||||
|
||||
```bash
|
||||
# 1. Existuje instance složka?
|
||||
ls -la instance/
|
||||
|
||||
# 2. Jsou v ní správné soubory?
|
||||
ls -la instance/transfer_stats.db*
|
||||
|
||||
# 3. Má Python práva na zápis?
|
||||
touch instance/test.txt && rm instance/test.txt
|
||||
|
||||
# 4. Je databáze validní?
|
||||
sqlite3 instance/transfer_stats.db ".tables"
|
||||
```
|
||||
|
||||
Pokud všechno OK, měl by výstup být:
|
||||
```
|
||||
accounts settings stats webhook
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Aktualizované soubory
|
||||
|
||||
Všechny soubory v `/mnt/user-data/outputs/` jsou již opravené:
|
||||
- ✅ **main_enhanced.py** - Opravená verze
|
||||
- ✅ **fix_db_path.py** - Automatický fix skript
|
||||
- ✅ **migrate.py** - Funguje s instance/
|
||||
|
||||
Stačí je použít a vše bude fungovat!
|
||||
|
||||
---
|
||||
|
||||
**Vyřešilo to problém? Dej mi vědět!** 🚀
|
||||
Loading…
Add table
Add a link
Reference in a new issue