This repository was archived by the owner on Jun 5, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.py
More file actions
executable file
·50 lines (38 loc) · 1.99 KB
/
Copy pathdatabase.py
File metadata and controls
executable file
·50 lines (38 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from sqlalchemy import text
from models import db, Admin
def _get_column_names(table_name):
columns = db.session.execute(text(f"PRAGMA table_info({table_name})")).fetchall()
return {column[1] for column in columns}
def _migrate_equipment_columns():
"""Добавляет отсутствующие колонки в устаревшую таблицу оборудования."""
column_names = _get_column_names('equipment')
if 'return_date' not in column_names:
db.session.execute(text("ALTER TABLE equipment ADD COLUMN return_date DATETIME"))
db.session.commit()
print("Миграция: добавлено поле equipment.return_date")
if 'current_guest_id' not in column_names:
db.session.execute(text("ALTER TABLE equipment ADD COLUMN current_guest_id INTEGER"))
db.session.commit()
print("Миграция: добавлено поле equipment.current_guest_id")
def _migrate_logs_columns():
"""Добавляет отсутствующие колонки в устаревшую таблицу логов."""
column_names = _get_column_names('logs')
if 'guest_id' not in column_names:
db.session.execute(text("ALTER TABLE logs ADD COLUMN guest_id INTEGER"))
db.session.commit()
print("Миграция: добавлено поле logs.guest_id")
def init_database(app):
"""Инициализирует базу данных."""
with app.app_context():
db.create_all()
_migrate_equipment_columns()
_migrate_logs_columns()
if Admin.query.count() == 0:
admin = Admin(username='admin', must_change_password=False)
admin.set_password('PressKit2026!')
db.session.add(admin)
db.session.commit()
print("Администратор создан: admin / PressKit2026!")
else:
admin = Admin.query.first()
print(f"База данных готова. Админ: {admin.username}")