Skip to content

Commit 0ae5516

Browse files
committed
Refactor: Use SQLAlchemy Database Management & ORM
- Deleted the `__init__.py` file from `stat_log_db/src/stat_log_db`. - Refactored `db.py` to use the SQLAlchemy engine - Removed deprecated Database sub-classes MemDB and FileDB - Removed deprecated Connection classes - Created `modules` directory for organizing different groups of SQLAlchemy models - Created a new `BaseModel` class in `modules/base/models/base.py` for ORM mapping. - Added `Log`, `LogLevel`, and `LogType` models in `modules/log/models/` with appropriate relationships. - Introduced `Tag` model in `modules/tag/models/tag.py`. - Implemented tests for database operations in `test_db.py` and removed `test_sql_injection.py`. - Updated `tools.sh` to improve cleanup script functionality.
1 parent 69c2d58 commit 0ae5516

File tree

14 files changed

+223
-634
lines changed

14 files changed

+223
-634
lines changed

stat_log_db/src/stat_log_db/__init__.py

Lines changed: 0 additions & 4 deletions
This file was deleted.

stat_log_db/src/stat_log_db/cli.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import os
22
# import sys
33

4+
from sqlalchemy import select
5+
from sqlalchemy.orm import Session
6+
47
# from .parser import create_parser
5-
from .db import MemDB # , FileDB, Database, BaseConnection
8+
from stat_log_db.db import Database as DB
9+
from stat_log_db.modules.log import Log, LogType, LogLevel
610

711

812
def main():
@@ -18,21 +22,31 @@ def main():
1822

1923
# print(f"{args=}")
2024

21-
sl_db = MemDB({
22-
"is_mem": True,
23-
"fkey_constraint": True
25+
sl_db = DB({
26+
"is_mem": True
2427
})
25-
con = sl_db.init_db(True)
26-
con.create_table("test", [('notes', 'TEXT')], False, True)
27-
con.execute("INSERT INTO test (notes) VALUES (?);", ("Hello world!",))
28-
con.commit()
29-
con.execute("SELECT * FROM test;")
30-
sql_logs = con.fetchall()
31-
print(sql_logs)
32-
con.drop_table("test", True)
33-
sl_db.close_db()
34-
if sl_db.is_file:
35-
os.remove(sl_db.file_name)
28+
sl_db.init_db()
29+
with Session(sl_db.engine) as session:
30+
info_type = LogType(
31+
name="INFO"
32+
)
33+
session.add(info_type)
34+
session.commit()
35+
info_level = LogLevel(
36+
name="INFO"
37+
)
38+
session.add(info_level)
39+
session.commit()
40+
hello_world = Log(
41+
type_id=1,
42+
level_id=1,
43+
message="Hello, World!"
44+
)
45+
session.add(hello_world)
46+
session.commit()
47+
logs = select(Log).where(Log.id == 1)
48+
for log in session.scalars(logs):
49+
print(f"{log.id=}, {log.type_id=}, {log.level_id=}, {log.message=}")
3650

3751

3852
if __name__ == "__main__":

0 commit comments

Comments
 (0)