From 4c44f6e23cddac0dc69640bf9193f442fa57e90f Mon Sep 17 00:00:00 2001 From: Ondrej Kokes Date: Fri, 25 Nov 2022 14:24:11 +0100 Subject: [PATCH 1/5] [main] sqlite strict poc --- main.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 4f37ad1a..d4872f27 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ from importlib import import_module from sqlalchemy import Boolean, MetaData, Table, create_engine -from sqlalchemy.schema import AddConstraint, DropConstraint, ForeignKeyConstraint +from sqlalchemy.schema import AddConstraint, CreateTable, DropConstraint, ForeignKeyConstraint def warninger(message, category, filename, lineno, line=None): @@ -175,7 +175,18 @@ def warninger(message, category, filename, lineno, line=None): if args.drop_first: table.drop(engine, checkfirst=True) - table.create(engine, checkfirst=True) + + # SQLAlchemy neumi SQLite STRICT tables, tak to udelame trochu humpolacky + if engine.name == "sqlite": + ddl = CreateTable(table).compile(engine).string + ddl += " STRICT" + ddl = ddl.replace(" BIGINT", " INT") + ddl = ddl.replace(" SMALLINT", " INT") + ddl = ddl.replace(" DATE", " TEXT") + conn = engine.raw_connection() + conn.execute(ddl) + else: + table.create(engine, checkfirst=True) # dropni fkeys pred nahravanim dat # z nejakeho duvodu jsou v sqlite nepojmenovany klice From 222fa12074594f48dc5433c8ed009888f2b19d58 Mon Sep 17 00:00:00 2001 From: Ondrej Kokes Date: Fri, 25 Nov 2022 14:26:01 +0100 Subject: [PATCH 2/5] time --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index d4872f27..e32f672a 100644 --- a/main.py +++ b/main.py @@ -183,6 +183,7 @@ def warninger(message, category, filename, lineno, line=None): ddl = ddl.replace(" BIGINT", " INT") ddl = ddl.replace(" SMALLINT", " INT") ddl = ddl.replace(" DATE", " TEXT") + ddl = ddl.replace(" TIME", " TEXT") conn = engine.raw_connection() conn.execute(ddl) else: From 128b9b9ab2d154afbf17fb4935f8626b67088274 Mon Sep 17 00:00:00 2001 From: Ondrej Kokes Date: Fri, 25 Nov 2022 14:26:31 +0100 Subject: [PATCH 3/5] json --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index e32f672a..01e24e93 100644 --- a/main.py +++ b/main.py @@ -184,6 +184,7 @@ def warninger(message, category, filename, lineno, line=None): ddl = ddl.replace(" SMALLINT", " INT") ddl = ddl.replace(" DATE", " TEXT") ddl = ddl.replace(" TIME", " TEXT") + ddl = ddl.replace(" JSON", " TEXT") conn = engine.raw_connection() conn.execute(ddl) else: From fe61de19f88edb10739bdd7d9e68b6fab1bfcd88 Mon Sep 17 00:00:00 2001 From: Ondrej Kokes Date: Fri, 25 Nov 2022 14:32:08 +0100 Subject: [PATCH 4/5] bool --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index 01e24e93..387e10aa 100644 --- a/main.py +++ b/main.py @@ -185,6 +185,7 @@ def warninger(message, category, filename, lineno, line=None): ddl = ddl.replace(" DATE", " TEXT") ddl = ddl.replace(" TIME", " TEXT") ddl = ddl.replace(" JSON", " TEXT") + ddl = ddl.replace(" BOOLEAN", " INT") conn = engine.raw_connection() conn.execute(ddl) else: From f4347c676018742d3893e3b263d56e376f547e6c Mon Sep 17 00:00:00 2001 From: Ondrej Kokes Date: Fri, 25 Nov 2022 14:36:44 +0100 Subject: [PATCH 5/5] numeric --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index 387e10aa..49f0db90 100644 --- a/main.py +++ b/main.py @@ -186,6 +186,7 @@ def warninger(message, category, filename, lineno, line=None): ddl = ddl.replace(" TIME", " TEXT") ddl = ddl.replace(" JSON", " TEXT") ddl = ddl.replace(" BOOLEAN", " INT") + # TODO: NUMERIC conn = engine.raw_connection() conn.execute(ddl) else: