aggiunti trasferte, export excel, miglioramenti generali
This commit is contained in:
61
fix_db_index.py
Normal file
61
fix_db_index.py
Normal file
@@ -0,0 +1,61 @@
|
||||
import sqlite3
|
||||
import os
|
||||
import time
|
||||
|
||||
# Function to find the db file
|
||||
def find_db():
|
||||
candidates = [
|
||||
'data/parking.db',
|
||||
'/home/ssalemi/org-parking/data/parking.db',
|
||||
'./data/parking.db'
|
||||
]
|
||||
for path in candidates:
|
||||
if os.path.exists(path):
|
||||
return path
|
||||
return None
|
||||
|
||||
db_path = find_db()
|
||||
|
||||
if not db_path:
|
||||
print("Error: Could not find data/parking.db. Make sure you are in the project root.")
|
||||
exit(1)
|
||||
|
||||
print(f"Target Database: {db_path}")
|
||||
print("Attempting to fix 'parking_exclusions' index...")
|
||||
|
||||
try:
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Turn off foreign keys temporarily to avoid issues during schema modification if needed
|
||||
cursor.execute("PRAGMA foreign_keys=OFF")
|
||||
|
||||
# 1. Drop the existing unique index
|
||||
print("Dropping index idx_exclusion_office_user...")
|
||||
try:
|
||||
cursor.execute("DROP INDEX IF EXISTS idx_exclusion_office_user")
|
||||
print("Index dropped successfully.")
|
||||
except Exception as e:
|
||||
print(f"Warning during drop: {e}")
|
||||
|
||||
# 2. Recreate it as non-unique
|
||||
print("Creating non-unique index idx_exclusion_office_user...")
|
||||
try:
|
||||
cursor.execute("CREATE INDEX idx_exclusion_office_user ON parking_exclusions (office_id, user_id)")
|
||||
print("Index created successfully.")
|
||||
except Exception as e:
|
||||
print(f"Error creating index: {e}")
|
||||
exit(1)
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
print("\nSUCCESS: Database updated. You can now define multiple exclusions per user.")
|
||||
|
||||
except sqlite3.OperationalError as e:
|
||||
if "locked" in str(e):
|
||||
print("\nERROR: Database is LOCKED.")
|
||||
print("Please STOP the running application (Docker) and try again.")
|
||||
else:
|
||||
print(f"\nError: {e}")
|
||||
except Exception as e:
|
||||
print(f"\nUnexpected Error: {e}")
|
||||
Reference in New Issue
Block a user