#!/usr/bin/env python # -*- coding: utf-8 -*- """------------------------------------------------------------------------------------------- -- IMPORTS -------------------------------------------------------------------------------------------""" """ --- HUEY IMPORT --- """ """ --- PYTHON IMPORTS --- """ import os from os.path import dirname, abspath """ --- STASHR DEPENDENCY IMPORTS --- """ """ --- STASHR CORE IMPORTS --- """ from stashr import log from stashr import database as stashrdb """ --- FLASK EXTENSION IMPORTS --- """ """ --- SQLALCHEMY IMPORTS --- """ from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import * """ --- CREATE LOGGER --- """ """ --- STASHR PLUGIN IMPORTS --- """ """ --- CREATE LOGGER --- """ logger = log.stashr_logger(__name__) """ --- CREATE SQLITE ENGINE --- """ db_path = os.path.join(dirname(abspath(__file__)), 'database.db') engine = create_engine('sqlite:///{0}'.format(db_path), connect_args={'check_same_thread': False, 'timeout': 15}, echo=False) Base = declarative_base() from marshmallow_sqlalchemy import ModelSchema, SQLAlchemyAutoSchema, SQLAlchemySchema, auto_field from marshmallow import fields from marshmallow_sqlalchemy.fields import Nested """------------------------------------------------------------------------------------------- -- DATABASE -------------------------------------------------------------------------------------------""" class Images(Base): __tablename__ = 'images' image_id = Column(Integer, primary_key=True) image_type = Column(String) image_type_id = Column(Integer) image_filename = Column(String) image_path = Column(String) image_original_size = Column(Integer) image_processed_size = Column(Integer) image_original_width = Column(Integer) image_original_height = Column(Integer) image_processed = Column(Boolean, server_default='0') """------------------------------------------------------------------------------------------- -- DATABASE SCHEMAS -------------------------------------------------------------------------------------------""" class ImagesSchema(SQLAlchemyAutoSchema): class Meta: model = Images """------------------------------------------------------------------------------------------- -- DATABASE DEFINITION -------------------------------------------------------------------------------------------""" Session = sessionmaker(bind=engine) session = Session() """------------------------------------------------------------------------------------------- -- DATABASE FUNCTIONS -------------------------------------------------------------------------------------------""" """ --- DATABASE MIGRATION --- """ def migrate_database(): # Check for new database tables # Check for new table columns pass """ --- CHECK DATABASE --- """ if not os.path.exists(db_path): logger.info('Creating Thumbnailer Database') Base.metadata.create_all(engine) else: logger.info('Thumbnailer Database Exists') migrate_database()