init
This commit is contained in:
60
init_db_local.py
Normal file
60
init_db_local.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Text, Boolean
|
||||
|
||||
# Connect to local SQLite DB
|
||||
engine = create_engine("sqlite:///./dev.db")
|
||||
metadata = MetaData()
|
||||
|
||||
# Define tables to initialize
|
||||
users = Table(
|
||||
"users", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("ip", String, unique=True, nullable=False),
|
||||
Column("xp", Integer, default=0),
|
||||
Column("soft_banned", Boolean, default=False),
|
||||
Column("first_visit", String), # could be DateTime if stored that way
|
||||
Column("ban_status", String, default="ok"), # or Integer if enum-based
|
||||
)
|
||||
|
||||
|
||||
runs = Table(
|
||||
"runs", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("user_id", Integer, nullable=False),
|
||||
Column("created_at", String),
|
||||
Column("completed_at", String),
|
||||
)
|
||||
|
||||
repos = Table(
|
||||
"repos", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("url", Text, nullable=False),
|
||||
Column("owner", String),
|
||||
Column("name", String),
|
||||
Column("license", String),
|
||||
Column("language", String),
|
||||
Column("stars", Integer),
|
||||
Column("forks", Integer),
|
||||
Column("description", Text),
|
||||
)
|
||||
|
||||
packages = Table(
|
||||
"packages", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("repo_id", Integer, nullable=False),
|
||||
Column("name", String, nullable=False),
|
||||
Column("version", String),
|
||||
)
|
||||
|
||||
output = Table(
|
||||
"output", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("run_id", Integer, nullable=False),
|
||||
Column("summary", Text),
|
||||
Column("score", Integer),
|
||||
Column("raw", Text),
|
||||
)
|
||||
|
||||
# Create all tables
|
||||
metadata.create_all(engine)
|
||||
|
||||
print("Database initialized with tables: users, runs, repos, packages, output")
|
||||
Reference in New Issue
Block a user