Geoeasy commited on
Commit
039087f
·
verified ·
1 Parent(s): 4be3d38

Delete init_db.py

Browse files
Files changed (1) hide show
  1. init_db.py +0 -122
init_db.py DELETED
@@ -1,122 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Script de inicialização automática da base de dados
4
- Executado automaticamente ao iniciar a aplicação no Hugging Face Spaces
5
- """
6
-
7
- import sqlite3
8
- import bcrypt
9
- from pathlib import Path
10
-
11
- def init_database():
12
- """Inicializa a base de dados se não existir"""
13
-
14
- BASE_DIR = Path(__file__).parent
15
- DB_PATH = BASE_DIR / "db" / "app.db"
16
-
17
- # Se a base de dados já existe, não fazer nada
18
- if DB_PATH.exists():
19
- print("✅ Base de dados já existe")
20
- return
21
-
22
- # Criar diretório
23
- DB_PATH.parent.mkdir(parents=True, exist_ok=True)
24
-
25
- print("=" * 60)
26
- print("Inicialização da Base de Dados")
27
- print("=" * 60)
28
-
29
- # Conectar à BD
30
- conn = sqlite3.connect(DB_PATH)
31
- conn.execute("PRAGMA foreign_keys = ON")
32
- cur = conn.cursor()
33
-
34
- # Criar tabela users
35
- print("\n[1/4] Criando tabela 'users'...")
36
- cur.execute("""
37
- CREATE TABLE IF NOT EXISTS users (
38
- id INTEGER PRIMARY KEY AUTOINCREMENT,
39
- username TEXT UNIQUE NOT NULL,
40
- password_hash TEXT NOT NULL,
41
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
42
- )
43
- """)
44
- print("✅ Tabela 'users' criada")
45
-
46
- # Criar tabela tasks
47
- print("\n[2/4] Criando tabela 'tasks'...")
48
- cur.execute("""
49
- CREATE TABLE IF NOT EXISTS tasks (
50
- id INTEGER PRIMARY KEY AUTOINCREMENT,
51
- username TEXT NOT NULL,
52
- task_code TEXT UNIQUE NOT NULL,
53
- task_name TEXT NOT NULL,
54
- task_date DATE NOT NULL,
55
- start_time TIMESTAMP NOT NULL,
56
- end_time TIMESTAMP NOT NULL,
57
- planned_hours REAL NOT NULL,
58
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
59
- FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE
60
- )
61
- """)
62
- print("✅ Tabela 'tasks' criada")
63
-
64
- # Criar tabela subtasks
65
- print("\n[3/4] Criando tabela 'subtasks'...")
66
- cur.execute("""
67
- CREATE TABLE IF NOT EXISTS subtasks (
68
- id INTEGER PRIMARY KEY AUTOINCREMENT,
69
- task_id INTEGER NOT NULL,
70
- subtask_code TEXT UNIQUE NOT NULL,
71
- subtask_name TEXT NOT NULL,
72
- start_time TIMESTAMP NOT NULL,
73
- end_time TIMESTAMP NOT NULL,
74
- planned_hours REAL NOT NULL,
75
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
76
- FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
77
- )
78
- """)
79
- print("✅ Tabela 'subtasks' criada")
80
-
81
- # Criar tabela task_logs
82
- print("\n[4/4] Criando tabela 'task_logs'...")
83
- cur.execute("""
84
- CREATE TABLE IF NOT EXISTS task_logs (
85
- id INTEGER PRIMARY KEY AUTOINCREMENT,
86
- username TEXT NOT NULL,
87
- task_id INTEGER,
88
- activity TEXT NOT NULL,
89
- event_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
90
- FOREIGN KEY (username) REFERENCES users(username) ON DELETE CASCADE,
91
- FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE
92
- )
93
- """)
94
- print("✅ Tabela 'task_logs' criada")
95
-
96
- # Criar utilizador de teste
97
- print("\n[5/5] Criando utilizador de teste...")
98
- username = "admin"
99
- password = "admin123"
100
- pw_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode()
101
-
102
- try:
103
- cur.execute(
104
- "INSERT INTO users (username, password_hash) VALUES (?, ?)",
105
- (username, pw_hash)
106
- )
107
- print(f"✅ Utilizador de teste criado:")
108
- print(f" Username: {username}")
109
- print(f" Password: {password}")
110
- except sqlite3.IntegrityError:
111
- print(f"⚠️ Utilizador '{username}' já existe")
112
-
113
- # Commit e fechar
114
- conn.commit()
115
- conn.close()
116
-
117
- print("\n" + "=" * 60)
118
- print("✅ BASE DE DADOS INICIALIZADA COM SUCESSO!")
119
- print("=" * 60)
120
-
121
- if __name__ == "__main__":
122
- init_database()