add database migration tooling with alembic

This commit is contained in:
2026-06-17 16:55:24 +02:00
parent decfdbffd1
commit 389fe2e159
13 changed files with 422 additions and 12 deletions

View File

@@ -13,6 +13,7 @@ from wce_crm import constants
from wce_crm import types as t
# // declarations
class SafeDateTime(TypeDecorator):
"""Cleans non-standard ISO strings before parsing."""
@@ -57,8 +58,8 @@ class UTCDateTime(TypeDecorator):
return value
md_crm = sql.MetaData()
md_main = sql.MetaData()
MD_CRM = sql.MetaData()
MD_MAIN = sql.MetaData()
ENGINE = sql.create_engine(f"sqlite:///{constants.Config.DB_PATH_MAIN}")
# ---------- OLD "Kontaktliste" ----------
@@ -141,7 +142,7 @@ ENGINE = sql.create_engine(f"sqlite:///{constants.Config.DB_PATH_MAIN}")
ext_crm_master: sql.Table = Table(
"Master",
md_crm,
MD_CRM,
Column("ma_id", sql.Integer, nullable=False, unique=True),
Column("wce_id", sql.ForeignKey("Nutzer.wce_id")),
Column("ma_unternehmensname", sql.Text, nullable=True),
@@ -218,7 +219,7 @@ DF_CRM_MASTER = get_ext_crm_master(constants.Config.DB_PATH_CRM)
ext_crm_nutzer: sql.Table = Table(
"Nutzer",
md_crm,
MD_CRM,
Column("wce_id", sql.Integer, nullable=False, unique=True),
Column("wce_name", sql.Text, nullable=True),
Column("wce_vorname", sql.Text, nullable=True),
@@ -246,7 +247,7 @@ ext_crm_nutzer_schema: t.PolarsSchema = {
ext_crm_contact_person: sql.Table = Table(
"Ansprechpartner",
md_crm,
MD_CRM,
Column("an_id", sql.Integer, nullable=False, unique=True),
Column("ma_id", sql.ForeignKey("Master.ma_id")),
Column("wce_id", sql.ForeignKey("Nutzer.wce_id")),
@@ -325,7 +326,7 @@ DF_CONTACT_PERSON = get_ext_crm_contact_person(constants.Config.DB_PATH_CRM)
grunderfassung: sql.Table = Table(
"grunderfassung",
md_main,
MD_MAIN,
Column(
"erfassung_id",
sql.Integer,
@@ -398,4 +399,4 @@ grunderfassung: sql.Table = Table(
Column("WeitereInfos__WI_meldung_institution", sql.Text, nullable=True),
)
md_main.create_all(ENGINE)
MD_MAIN.create_all(ENGINE)