Extend sqlite3 database, item and link support

This commit is contained in:
Frank Matthieß 2024-09-15 22:49:23 +02:00
parent 60e2d3e044
commit 831b801696
10 changed files with 597 additions and 92 deletions

39
test/create-database.py Normal file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env python3
#
from itemsdb.sqlite3 import *
from itemsdb.log import *
import os.path
dbdir = os.getenv("ITEMSDB_SQLITE3_DATABASEDIR", ".")
dbname = os.getenv("ITEMSDB_SQLITE3_FILENAME", "itemsdb.db")
dbprefix = os.getenv("ITEMSDB_PREFIX", "")
dbfilename = os.path.join(dbdir, f"{dbprefix}{dbname}")
parameter = dict(filename=dbfilename, prefix=dbprefix)
db = DBSqlite3(parameter=parameter)
debug(f"Database: '{type(db)}'")
try:
db_created, msg = db.create()
debug(f"Database after create(): '{type(db)}'")
if db_created:
print(f"Database '{dbfilename}' created")
else:
print(msg)
open, open_msg = db.open()
print(open_msg)
debug(f"Database after open(): '{type(db)}'")
tables_created, msg = db.createTables()
if tables_created:
print(f"{msg}: {', '.join([model.__name__ for model in db.models])}")
else:
print(msg)
except DBException as db_e:
print(db_e)

View file

@ -59,55 +59,3 @@ success, item_type, e_msg = createItemType(db, item_name, item_schema)
if not success:
error(e_msg)
sys.exit(3)
# DATABASEDIR = getenv("ITEMSDB_DATABASEDIR", "./build")
# database_filename = f"{DATABASEDIR}/itemsdb_test.db"
# makedirs(DATABASEDIR, exist_ok=True)
# db = SqliteDatabase(database_filename)
# class BaseModel(Model):
# class Meta:
# database = db
# class item_types(BaseModel):
# name = TextField(unique=True, null=False)
# schema = TextField()
# class items(BaseModel):
# id = BinaryUUIDField(primary_key=True)
# type = ForeignKeyField(item_types)
# data = TextField(null=False, default={})
# print("Open db, do the work and close it again")
# db.connect()
# db.create_tables([item_types, items])
# type_server = item_types.select().where(item_types.name == "Server")
# if type_server.count() == 0:
# it_server = item_types()
# it_server.name = "Server"
# it_server.schema = {}
# it_server.save()
# try:
# it_n = "Server1"
# it_s = item_types.get(item_types.name == it_n)
# i_server = items.create(
# id=uuid(),
# type=it_s,
# data={},
# )
# except item_types.DoesNotExist:
# print(f"item type '{it_n}' does not exist.")
# db.close()