SekiPOS server sync
This commit is contained in:
43
core/db.py
43
core/db.py
@@ -66,6 +66,49 @@ def init_db(db_file):
|
||||
subtotal REAL,
|
||||
FOREIGN KEY(ticket_id) REFERENCES debtor_tickets(id) ON DELETE CASCADE)''')
|
||||
|
||||
conn.execute('''CREATE TABLE IF NOT EXISTS sync_deletions
|
||||
(id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
entity_type TEXT NOT NULL,
|
||||
entity_uuid TEXT NOT NULL,
|
||||
deleted_at TEXT DEFAULT (datetime('now')),
|
||||
synced_at TEXT)''')
|
||||
|
||||
# --- MIGRATIONS ---
|
||||
for stmt in [
|
||||
"ALTER TABLE sales ADD COLUMN uuid TEXT",
|
||||
"ALTER TABLE sales ADD COLUMN synced_at TEXT",
|
||||
"ALTER TABLE products ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
|
||||
"ALTER TABLE products ADD COLUMN updated_by TEXT",
|
||||
"ALTER TABLE expenses ADD COLUMN uuid TEXT",
|
||||
"ALTER TABLE expenses ADD COLUMN synced_at TEXT",
|
||||
"ALTER TABLE debtors ADD COLUMN uuid TEXT",
|
||||
"ALTER TABLE debtors ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
|
||||
"ALTER TABLE debtors ADD COLUMN updated_by TEXT",
|
||||
"ALTER TABLE debtor_tickets ADD COLUMN uuid TEXT",
|
||||
"ALTER TABLE debtor_tickets ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
|
||||
"ALTER TABLE debtor_tickets ADD COLUMN updated_by TEXT",
|
||||
"ALTER TABLE dicom ADD COLUMN uuid TEXT",
|
||||
"ALTER TABLE dicom ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
|
||||
"ALTER TABLE dicom ADD COLUMN updated_by TEXT",
|
||||
]:
|
||||
try:
|
||||
conn.execute(stmt)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for tbl in ['products', 'debtors', 'debtor_tickets', 'dicom']:
|
||||
conn.execute(f"UPDATE {tbl} SET updated_at = datetime('now') WHERE updated_at IS NULL")
|
||||
|
||||
for idx in [
|
||||
"CREATE UNIQUE INDEX IF NOT EXISTS idx_debtors_uuid ON debtors(uuid)",
|
||||
"CREATE UNIQUE INDEX IF NOT EXISTS idx_dicom_uuid ON dicom(uuid)",
|
||||
"CREATE UNIQUE INDEX IF NOT EXISTS idx_expenses_uuid ON expenses(uuid)",
|
||||
]:
|
||||
try:
|
||||
conn.execute(idx)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
user = conn.execute('SELECT * FROM users WHERE username = ?', ('admin',)).fetchone()
|
||||
if not user:
|
||||
from werkzeug.security import generate_password_hash
|
||||
|
||||
Reference in New Issue
Block a user