2020-06-05 12:42:04 +00:00
|
|
|
from sqlalchemy.ext.automap import automap_base
|
|
|
|
from sqlalchemy.orm import relationship
|
2020-10-08 10:34:02 +00:00
|
|
|
from . import engine
|
2020-06-05 12:42:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
Base = automap_base()
|
|
|
|
|
|
|
|
|
|
|
|
# Classes for database models
|
|
|
|
class Corpus(Base):
|
|
|
|
__tablename__ = 'corpora'
|
|
|
|
files = relationship('CorpusFile', collection_class=set)
|
|
|
|
|
|
|
|
|
|
|
|
class CorpusFile(Base):
|
|
|
|
__tablename__ = 'corpus_files'
|
|
|
|
|
|
|
|
|
|
|
|
class Job(Base):
|
|
|
|
__tablename__ = 'jobs'
|
|
|
|
inputs = relationship('JobInput', collection_class=set)
|
|
|
|
results = relationship('JobResult', collection_class=set)
|
|
|
|
notification_data = relationship('NotificationData', collection_class=list)
|
|
|
|
notification_email_data = relationship('NotificationEmailData',
|
|
|
|
collection_class=list)
|
|
|
|
|
|
|
|
|
|
|
|
class JobInput(Base):
|
|
|
|
__tablename__ = 'job_results'
|
|
|
|
|
|
|
|
|
|
|
|
class JobResult(Base):
|
|
|
|
__tablename__ = 'job_results'
|
|
|
|
|
|
|
|
|
|
|
|
class NotificationData(Base):
|
|
|
|
__tablename__ = 'notification_data'
|
|
|
|
job = relationship('Job', collection_class=set)
|
|
|
|
|
|
|
|
|
|
|
|
class NotificationEmailData(Base):
|
|
|
|
__tablename__ = 'notification_email_data'
|
|
|
|
job = relationship('Job', collection_class=set)
|
|
|
|
|
|
|
|
|
|
|
|
class User(Base):
|
|
|
|
__tablename__ = 'users'
|
|
|
|
jobs = relationship('Job', collection_class=set)
|
|
|
|
corpora = relationship('Corpus', collection_class=set)
|
|
|
|
|
|
|
|
|
|
|
|
Base.prepare(engine, reflect=True)
|