summaryrefslogtreecommitdiff
path: root/animism-align/cli/app/sql
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-06-23 23:18:07 +0200
committerJules Laplace <julescarbon@gmail.com>2020-06-23 23:18:07 +0200
commit3cf70771cb45cc16ec33ffe44e7a1a4799d8f395 (patch)
tree55f0edb53141d5f043b486d722f507bfd94abdea /animism-align/cli/app/sql
parent014816dc724c1be60b7dd28d4e608c89b4ed451c (diff)
adding web app base
Diffstat (limited to 'animism-align/cli/app/sql')
-rw-r--r--animism-align/cli/app/sql/__pycache__/common.cpython-37.pycbin0 -> 852 bytes
-rw-r--r--animism-align/cli/app/sql/__pycache__/env.cpython-37.pycbin0 -> 1643 bytes
-rw-r--r--animism-align/cli/app/sql/common.py35
-rw-r--r--animism-align/cli/app/sql/env.py69
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/collection.cpython-37.pycbin0 -> 2784 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/collection_media.cpython-37.pycbin0 -> 1836 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/detection_type.cpython-37.pycbin0 -> 2221 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/detection_type_import.cpython-37.pycbin0 -> 1450 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/feature_type.cpython-37.pycbin0 -> 2297 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/feature_type_import.cpython-37.pycbin0 -> 1424 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/graph.cpython-37.pycbin0 -> 2315 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/media.cpython-37.pycbin0 -> 3072 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/media_detection.cpython-37.pycbin0 -> 2048 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/media_import.cpython-37.pycbin0 -> 1880 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/page.cpython-37.pycbin0 -> 2792 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/tile.cpython-37.pycbin0 -> 2037 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/timestamp.cpython-37.pycbin0 -> 1852 bytes
-rw-r--r--animism-align/cli/app/sql/models/__pycache__/upload.cpython-37.pycbin0 -> 1991 bytes
-rw-r--r--animism-align/cli/app/sql/models/timestamp.py37
-rw-r--r--animism-align/cli/app/sql/models/upload.py44
-rw-r--r--animism-align/cli/app/sql/script.py.mako25
-rw-r--r--animism-align/cli/app/sql/versions/202006231946_create_database.py47
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011922_creating_database.cpython-37.pycbin0 -> 1362 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011923_adding_pages_table.cpython-37.pycbin0 -> 1485 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011925_adding_tiles_table.cpython-37.pycbin0 -> 1153 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011937_adding_pages.cpython-37.pycbin0 -> 1109 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011943_adding_database.cpython-37.pycbin0 -> 1721 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006011944_adding_uploads.cpython-37.pycbin0 -> 1094 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006021608_creating_database.cpython-37.pycbin0 -> 2019 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006041801_add_sort_order_to_tiles.cpython-37.pycbin0 -> 827 bytes
-rw-r--r--animism-align/cli/app/sql/versions/__pycache__/202006231946_create_database.cpython-37.pycbin0 -> 1326 bytes
31 files changed, 257 insertions, 0 deletions
diff --git a/animism-align/cli/app/sql/__pycache__/common.cpython-37.pyc b/animism-align/cli/app/sql/__pycache__/common.cpython-37.pyc
new file mode 100644
index 0000000..fe626e5
--- /dev/null
+++ b/animism-align/cli/app/sql/__pycache__/common.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/__pycache__/env.cpython-37.pyc b/animism-align/cli/app/sql/__pycache__/env.cpython-37.pyc
new file mode 100644
index 0000000..b8ea29b
--- /dev/null
+++ b/animism-align/cli/app/sql/__pycache__/env.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/common.py b/animism-align/cli/app/sql/common.py
new file mode 100644
index 0000000..6f3586b
--- /dev/null
+++ b/animism-align/cli/app/sql/common.py
@@ -0,0 +1,35 @@
+import os
+import glob
+import time
+
+# import mysql.connector
+from sqlalchemy import create_engine
+from sqlalchemy.orm import sessionmaker
+from sqlalchemy.ext.declarative import declarative_base
+
+from flask_sqlalchemy import SQLAlchemy
+
+from app.settings import app_cfg
+
+# connection_url = "mysql+mysqlconnector://{}:{}@{}/{}?charset=utf8mb4".format(
+# os.getenv("DB_USER"),
+# os.getenv("DB_PASS"),
+# os.getenv("DB_HOST"),
+# os.getenv("DB_NAME")
+# )
+
+os.makedirs(app_cfg.DIR_DATABASE, exist_ok=True)
+
+connection_url = "sqlite:///{}".format(os.path.join(app_cfg.DIR_DATABASE, 'animism.sqlite3'))
+
+engine = create_engine(connection_url, encoding="utf-8", pool_recycle=3600)
+
+Session = sessionmaker(bind=engine)
+Base = declarative_base()
+Base.metadata.bind = engine
+
+db = SQLAlchemy()
+
+# include the models in reverse dependency order, so relationships work
+from app.sql.models.timestamp import Timestamp
+from app.sql.models.upload import Upload
diff --git a/animism-align/cli/app/sql/env.py b/animism-align/cli/app/sql/env.py
new file mode 100644
index 0000000..839a30b
--- /dev/null
+++ b/animism-align/cli/app/sql/env.py
@@ -0,0 +1,69 @@
+from sqlalchemy import engine_from_config
+from sqlalchemy import pool
+
+from alembic import context
+
+from app.sql.common import db, engine, connection_url, Base
+
+# this is the Alembic Config object, which provides
+# access to the values within the .ini file in use.
+config = context.config
+config.set_main_option("script_location", "./app/sql")
+config.set_main_option("sqlalchemy.url", connection_url)
+
+target_metadata = Base.metadata
+
+# include the models in reverse dependency order, so relationships work
+from app.sql.models.timestamp import Timestamp
+from app.sql.models.upload import Upload
+
+def run_migrations_offline():
+ """Run migrations in 'offline' mode.
+
+ This configures the context with just a URL
+ and not an Engine, though an Engine is acceptable
+ here as well. By skipping the Engine creation
+ we don't even need a DBAPI to be available.
+
+ Calls to context.execute() here emit the given string to the
+ script output.
+
+ """
+ url = config.get_main_option("sqlalchemy.url")
+ context.configure(
+ url=url,
+ target_metadata=target_metadata,
+ literal_binds=True,
+ dialect_opts={"paramstyle": "named"},
+ )
+
+ with context.begin_transaction():
+ context.run_migrations()
+
+
+def run_migrations_online():
+ """Run migrations in 'online' mode.
+
+ In this scenario we need to create an Engine
+ and associate a connection with the context.
+
+ """
+ # connectable = engine_from_config(
+ # config.get_section(config.config_ini_section),
+ # prefix="sqlalchemy.",
+ # poolclass=pool.NullPool,
+ # )
+
+ with engine.connect() as connection:
+ context.configure(
+ connection=connection, target_metadata=target_metadata
+ )
+
+ with context.begin_transaction():
+ context.run_migrations()
+
+
+if context.is_offline_mode():
+ run_migrations_offline()
+else:
+ run_migrations_online()
diff --git a/animism-align/cli/app/sql/models/__pycache__/collection.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/collection.cpython-37.pyc
new file mode 100644
index 0000000..927259d
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/collection.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/collection_media.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/collection_media.cpython-37.pyc
new file mode 100644
index 0000000..cacd652
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/collection_media.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/detection_type.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/detection_type.cpython-37.pyc
new file mode 100644
index 0000000..195474b
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/detection_type.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/detection_type_import.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/detection_type_import.cpython-37.pyc
new file mode 100644
index 0000000..df4e41e
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/detection_type_import.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/feature_type.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/feature_type.cpython-37.pyc
new file mode 100644
index 0000000..12b566b
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/feature_type.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/feature_type_import.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/feature_type_import.cpython-37.pyc
new file mode 100644
index 0000000..ff1c5c1
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/feature_type_import.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/graph.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/graph.cpython-37.pyc
new file mode 100644
index 0000000..f803c6b
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/graph.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/media.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/media.cpython-37.pyc
new file mode 100644
index 0000000..8c75482
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/media.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/media_detection.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/media_detection.cpython-37.pyc
new file mode 100644
index 0000000..5579e49
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/media_detection.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/media_import.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/media_import.cpython-37.pyc
new file mode 100644
index 0000000..8ba8af4
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/media_import.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/page.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/page.cpython-37.pyc
new file mode 100644
index 0000000..3907746
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/page.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/tile.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/tile.cpython-37.pyc
new file mode 100644
index 0000000..743b301
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/tile.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/timestamp.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/timestamp.cpython-37.pyc
new file mode 100644
index 0000000..8337acf
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/timestamp.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/__pycache__/upload.cpython-37.pyc b/animism-align/cli/app/sql/models/__pycache__/upload.cpython-37.pyc
new file mode 100644
index 0000000..39fb71b
--- /dev/null
+++ b/animism-align/cli/app/sql/models/__pycache__/upload.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/models/timestamp.py b/animism-align/cli/app/sql/models/timestamp.py
new file mode 100644
index 0000000..60e9007
--- /dev/null
+++ b/animism-align/cli/app/sql/models/timestamp.py
@@ -0,0 +1,37 @@
+from sqlalchemy import create_engine, Table, Column, Text, String, Integer, Float, DateTime, JSON, ForeignKey
+from sqlalchemy.orm import relationship
+import sqlalchemy.sql.functions as func
+from sqlalchemy_utc import UtcDateTime, utcnow
+from wtforms_alchemy import ModelForm
+
+from app.sql.common import db, Base, Session
+# from app.sql.models.page import Page
+
+from app.settings import app_cfg
+
+class Timestamp(Base):
+ """Table for storing references to graphs"""
+ __tablename__ = 'graph'
+ id = Column(Integer, primary_key=True)
+ type = Column(String(16, convert_unicode=True), nullable=False)
+ start_ts = Column(Float, nullable=False)
+ end_ts = Column(Float, nullable=True)
+ sentence = Column(Text(convert_unicode=True), nullable=True)
+ settings = Column(JSON, default={}, nullable=True)
+
+ def toJSON(self):
+ return {
+ 'id': self.id,
+ 'type': self.type,
+ 'start_ts': self.start_ts,
+ 'end_ts': self.end_ts,
+ 'sentence': self.description,
+ 'settings': self.settings,
+ }
+
+class TimestampForm(ModelForm):
+ class Meta:
+ model = Timestamp
+ exclude = ['settings']
+ def get_session():
+ return Session()
diff --git a/animism-align/cli/app/sql/models/upload.py b/animism-align/cli/app/sql/models/upload.py
new file mode 100644
index 0000000..5863b07
--- /dev/null
+++ b/animism-align/cli/app/sql/models/upload.py
@@ -0,0 +1,44 @@
+from sqlalchemy import create_engine, Table, Column, String, Integer, DateTime
+import sqlalchemy.sql.functions as func
+from sqlalchemy_utc import UtcDateTime, utcnow
+from wtforms_alchemy import ModelForm
+
+from app.sql.common import db, Base, Session
+
+from app.utils.file_utils import sha256_tree
+from app.settings import app_cfg
+
+from os.path import join
+
+class Upload(Base):
+ """Table for storing references to various media"""
+ __tablename__ = 'upload'
+ id = Column(Integer, primary_key=True)
+ sha256 = Column(String(256), nullable=False)
+ fn = Column(String(256), nullable=False)
+ ext = Column(String(4, convert_unicode=True), nullable=False)
+ username = Column(String(16, convert_unicode=True), nullable=False)
+ created_at = Column(UtcDateTime(), default=utcnow())
+
+ def toJSON(self):
+ return {
+ 'id': self.id,
+ 'sha256': self.sha256,
+ 'fn': self.fn,
+ 'ext': self.ext,
+ 'username': self.username,
+ 'url': self.url(),
+ 'created_at': self.created_at,
+ }
+
+ def filename(self):
+ return "{}{}".format(self.fn)
+
+ def filepath(self):
+ return join(app_cfg.DIR_UPLOADS, sha256_tree(self.sha256))
+
+ def fullpath(self):
+ return join(self.filepath(), self.filename())
+
+ def url(self):
+ return join(app_cfg.URL_UPLOADS, sha256_tree(self.sha256), self.filename())
diff --git a/animism-align/cli/app/sql/script.py.mako b/animism-align/cli/app/sql/script.py.mako
new file mode 100644
index 0000000..c4b86b8
--- /dev/null
+++ b/animism-align/cli/app/sql/script.py.mako
@@ -0,0 +1,25 @@
+"""${message}
+
+Revision ID: ${up_revision}
+Revises: ${down_revision | comma,n}
+Create Date: ${create_date}
+
+"""
+from alembic import op
+import sqlalchemy as sa
+import sqlalchemy_utc
+${imports if imports else ""}
+
+# revision identifiers, used by Alembic.
+revision = ${repr(up_revision)}
+down_revision = ${repr(down_revision)}
+branch_labels = ${repr(branch_labels)}
+depends_on = ${repr(depends_on)}
+
+
+def upgrade():
+ ${upgrades if upgrades else "pass"}
+
+
+def downgrade():
+ ${downgrades if downgrades else "pass"}
diff --git a/animism-align/cli/app/sql/versions/202006231946_create_database.py b/animism-align/cli/app/sql/versions/202006231946_create_database.py
new file mode 100644
index 0000000..b74f9b3
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/202006231946_create_database.py
@@ -0,0 +1,47 @@
+"""create database
+
+Revision ID: e45386a1498b
+Revises:
+Create Date: 2020-06-23 19:46:05.161996
+
+"""
+from alembic import op
+import sqlalchemy as sa
+import sqlalchemy_utc
+
+
+# revision identifiers, used by Alembic.
+revision = 'e45386a1498b'
+down_revision = None
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.create_table('graph',
+ sa.Column('id', sa.Integer(), nullable=False),
+ sa.Column('type', sa.String(length=16, _expect_unicode=True), nullable=False),
+ sa.Column('start_ts', sa.Float(), nullable=False),
+ sa.Column('end_ts', sa.Float(), nullable=True),
+ sa.Column('sentence', sa.Text(_expect_unicode=True), nullable=True),
+ sa.Column('settings', sa.JSON(), nullable=True),
+ sa.PrimaryKeyConstraint('id')
+ )
+ op.create_table('upload',
+ sa.Column('id', sa.Integer(), nullable=False),
+ sa.Column('sha256', sa.String(length=256), nullable=False),
+ sa.Column('fn', sa.String(length=256), nullable=False),
+ sa.Column('ext', sa.String(length=4, _expect_unicode=True), nullable=False),
+ sa.Column('username', sa.String(length=16, _expect_unicode=True), nullable=False),
+ sa.Column('created_at', sqlalchemy_utc.sqltypes.UtcDateTime(timezone=True), nullable=True),
+ sa.PrimaryKeyConstraint('id')
+ )
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_table('upload')
+ op.drop_table('graph')
+ # ### end Alembic commands ###
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011922_creating_database.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011922_creating_database.cpython-37.pyc
new file mode 100644
index 0000000..a1adb31
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011922_creating_database.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011923_adding_pages_table.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011923_adding_pages_table.cpython-37.pyc
new file mode 100644
index 0000000..beeeb71
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011923_adding_pages_table.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011925_adding_tiles_table.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011925_adding_tiles_table.cpython-37.pyc
new file mode 100644
index 0000000..8d16725
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011925_adding_tiles_table.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011937_adding_pages.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011937_adding_pages.cpython-37.pyc
new file mode 100644
index 0000000..35b459c
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011937_adding_pages.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011943_adding_database.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011943_adding_database.cpython-37.pyc
new file mode 100644
index 0000000..adf3587
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011943_adding_database.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006011944_adding_uploads.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006011944_adding_uploads.cpython-37.pyc
new file mode 100644
index 0000000..159dc66
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006011944_adding_uploads.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006021608_creating_database.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006021608_creating_database.cpython-37.pyc
new file mode 100644
index 0000000..c5df7ca
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006021608_creating_database.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006041801_add_sort_order_to_tiles.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006041801_add_sort_order_to_tiles.cpython-37.pyc
new file mode 100644
index 0000000..67e35cf
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006041801_add_sort_order_to_tiles.cpython-37.pyc
Binary files differ
diff --git a/animism-align/cli/app/sql/versions/__pycache__/202006231946_create_database.cpython-37.pyc b/animism-align/cli/app/sql/versions/__pycache__/202006231946_create_database.cpython-37.pyc
new file mode 100644
index 0000000..dd49abc
--- /dev/null
+++ b/animism-align/cli/app/sql/versions/__pycache__/202006231946_create_database.cpython-37.pyc
Binary files differ