diff --git a/kontor-scripts/json_to_postgres.py b/kontor-scripts/json_to_postgres.py index e5b1240..d70402e 100644 --- a/kontor-scripts/json_to_postgres.py +++ b/kontor-scripts/json_to_postgres.py @@ -23,12 +23,12 @@ def copy_data(postgres_conn, data_file: Path, log): log.info("read json file") with open(data_file, 'r') as json_file: json_load = json.load(json_file) + postgres_cursor.execute("SET session_replication_role='replica'") for table in json_load: log.info(f"{table}: {len(json_load[table])}") # result[table] = import_table(table, json_load[table]) - truncate_statement = 'TRUNCATE {}'.format(table) + truncate_statement = 'TRUNCATE {} CASCADE'.format(table) #log.info(f"truncate: {truncate_statement}") - postgres_cursor.execute("SET FOREIGN_KEY_CHECKS = 0") postgres_cursor.execute(truncate_statement) items = json_load[table] for item in items: @@ -47,7 +47,7 @@ def copy_data(postgres_conn, data_file: Path, log): postgres_conn.commit() except psycopg2.Error as error: log.info('insert failed with %s', error) - + postgres_cursor.execute("SET session_replication_role='origin'") if __name__ == '__main__': logger = get_logger(args.verbose, args.config) diff --git a/kontor-scripts/schema/admin.py b/kontor-scripts/schema/admin.py index c5b3e99..5e549bf 100644 --- a/kontor-scripts/schema/admin.py +++ b/kontor-scripts/schema/admin.py @@ -1,7 +1,6 @@ from datetime import datetime -from sqlalchemy import Column, ForeignKey, Integer, String -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Column, ForeignKey, Integer, String, Boolean from sqlalchemy.orm import relationship, mapped_column, Mapped from .base import Base, BaseMixin @@ -56,7 +55,7 @@ class AuthorizationMatrix(Base, BaseMixin): class ModuleData(Base, BaseMixin): __tablename__ = "module_data" module_name = Column(String(255), nullable=False) - import_data = Column(BIT(1)) + import_data = Column(Boolean) class MailAccount(Base, BaseMixin): @@ -66,7 +65,7 @@ class MailAccount(Base, BaseMixin): protocol = Column(String(255)) user_name = Column(String(255)) password = Column(String(255)) - start_tls = Column(BIT(1)) + start_tls = Column(Boolean) class Mail(Base, BaseMixin): diff --git a/kontor-scripts/schema/base.py b/kontor-scripts/schema/base.py index 4a354e7..5ef8183 100644 --- a/kontor-scripts/schema/base.py +++ b/kontor-scripts/schema/base.py @@ -1,8 +1,7 @@ import uuid from datetime import datetime -from sqlalchemy import func, Column, String -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import func, Column, String, Boolean from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column @@ -25,7 +24,7 @@ class BaseVideoMixin: cloud_link = Column(String(255)) file_name = Column(String(255)) path = Column(String(255)) - review = Column(BIT(1)) + review = Column(Boolean) title = Column(String(255)) url = Column(String(255), unique=True) - should_download = Column(BIT(1)) + should_download = Column(Boolean) diff --git a/kontor-scripts/schema/comic.py b/kontor-scripts/schema/comic.py index 1052d79..45cb8c3 100644 --- a/kontor-scripts/schema/comic.py +++ b/kontor-scripts/schema/comic.py @@ -1,5 +1,4 @@ -from sqlalchemy import Column, ForeignKey, Integer, String -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Column, ForeignKey, Integer, String, Boolean from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -22,8 +21,8 @@ class Comic(Base, BaseMixin): title = Column(String(length=255), unique=True) publisher_id = Column(String, ForeignKey('publisher.id'), nullable=False) publisher = relationship("Publisher", back_populates="comics") - current_order = Column(BIT(1)) - completed = Column(BIT(1)) + current_order = Column(Boolean) + completed = Column(Boolean) issues = relationship("Issue") story_arcs = relationship("StoryArc") trade_paperbacks = relationship("TradePaperback") @@ -64,8 +63,8 @@ class StoryArc(Base, BaseMixin): class Issue(Base, BaseMixin): __tablename__ = "issue" issue_number = Column(String(255)) - in_stock = Column(BIT(1)) - is_read = Column(BIT(1)) + in_stock = Column(Boolean) + is_read = Column(Boolean) comic_id = Column(String, ForeignKey("comic.id"), nullable=False) comic = relationship("Comic", back_populates="issues") volume_id = Column(String, ForeignKey("volume.id"), nullable=True) diff --git a/kontor-scripts/schema/metadata.py b/kontor-scripts/schema/metadata.py index 950cebe..9ac5aa4 100644 --- a/kontor-scripts/schema/metadata.py +++ b/kontor-scripts/schema/metadata.py @@ -1,5 +1,4 @@ -from sqlalchemy import Column, String, ForeignKey, Integer -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Column, String, ForeignKey, Integer, Boolean from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -28,8 +27,8 @@ class MetaDataColumn(Base, BaseMixin): table = relationship("MetaDataTable", back_populates="table_columns") column_label = Column(String(255)) filter_label = Column(String(255)) - is_shown = Column(BIT(1)) - show_filter = Column(BIT(1)) + is_shown = Column(Boolean) + show_filter = Column(Boolean) ref_column = Column(String, nullable=True) def __repr__(self): diff --git a/kontor-scripts/schema/tysc.py b/kontor-scripts/schema/tysc.py index 32c88f1..5ab4baa 100644 --- a/kontor-scripts/schema/tysc.py +++ b/kontor-scripts/schema/tysc.py @@ -1,5 +1,4 @@ -from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint -from sqlalchemy.dialects.mysql import BIT +from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Boolean from sqlalchemy.orm import relationship from .base import Base, BaseMixin @@ -78,8 +77,8 @@ class CardSet(Base, BaseMixin): UniqueConstraint("name", "vendor_id"), ) name = Column(String(255), index=True) - parallel_set = Column(BIT(1)) - insert_set = Column(BIT(1)) + parallel_set = Column(Boolean) + insert_set = Column(Boolean) vendor_id = Column(String, ForeignKey("vendor.id"), nullable=False, index=True) vendor = relationship("Vendor", back_populates="card_sets") cards = relationship("Card")