Skip to content

Commit 53deaeb

Browse files
committed
fix docker issues, dont do commits at 1am
1 parent 4750f33 commit 53deaeb

2 files changed

Lines changed: 50 additions & 25 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
"""create default admin
2+
3+
Revision ID: f6c333d647a5
4+
Revises: 23bc0e2cee25
5+
Create Date: 2025-12-13 11:50:24.008539
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
from sqlalchemy.sql import table, column
13+
from passlib.hash import bcrypt
14+
15+
16+
17+
# revision identifiers, used by Alembic.
18+
revision: str = 'f6c333d647a5'
19+
down_revision: Union[str, None] = '23bc0e2cee25'
20+
branch_labels: Union[str, Sequence[str], None] = None
21+
depends_on: Union[str, Sequence[str], None] = None
22+
23+
24+
def upgrade() -> None:
25+
users = table(
26+
'users',
27+
column('id', sa.Integer),
28+
column('username', sa.String),
29+
column('password', sa.String),
30+
column('is_admin', sa.Boolean),
31+
)
32+
33+
# Insert only if table is empty
34+
conn = op.get_bind()
35+
result = conn.execute(sa.text("SELECT COUNT(*) FROM users"))
36+
count = result.scalar()
37+
38+
if count == 0:
39+
conn.execute(
40+
users.insert().values(
41+
username="admin",
42+
password=bcrypt.hash("admin"),
43+
is_admin=True
44+
)
45+
)
46+
47+
48+
49+
def downgrade() -> None:
50+
pass

app/main.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -78,31 +78,6 @@ async def lifespan(app: FastAPI):
7878
settings.avatar_dir.mkdir(parents=True, exist_ok=True)
7979

8080

81-
# ---Auto-Create Default Admin and initialize settings ---
82-
db = SessionLocal()
83-
try:
84-
85-
# Initialize default settings
86-
SettingsService(db).initialize_defaults()
87-
print("Initialized system settings")
88-
89-
user_count = db.query(User).count()
90-
if user_count == 0:
91-
print("No users found. Creating default admin...")
92-
default_admin = User(
93-
username="admin",
94-
email="admin@example.com",
95-
hashed_password=get_password_hash("admin"), # Default password
96-
is_superuser=True,
97-
is_active=True
98-
)
99-
db.add(default_admin)
100-
db.commit()
101-
print("Created user: admin / admin")
102-
finally:
103-
db.close()
104-
# --------------------------------------
105-
10681
# --- SETUP LOGGING (Dynamic) ---
10782
# Fetch from DB (defaults to "INFO" if the setting is missing)
10883
# We use the loader because it is safe to call before the app is fully running.

0 commit comments

Comments
 (0)