1
0
Fork 0
This repository has been archived on 2024-06-28. You can view files and clone it, but cannot push or open issues or pull requests.
PaperLibrary-old/models.py

58 lines
1.3 KiB
Python

from peewee import Model, CharField, SqliteDatabase, BooleanField, TextField, \
ForeignKeyField, DateField
db = SqliteDatabase('storage.db', pragmas={
'journal_mode': 'wal',
'cache_size': -1 * 64000, # 64MB
'foreign_keys': 1,
'ignore_check_constraints': 0})
db.connect()
class BaseModel(Model):
class Meta:
database = db
class Author(BaseModel):
name = CharField(unique=True)
affiliation = CharField(null=True)
orcid_id = CharField(null=True)
class Keyword(BaseModel):
keyword = CharField(unique=True)
class Publication(BaseModel):
name = CharField(unique=True)
class Doctype(BaseModel):
name = CharField(unique=True)
class Paper(BaseModel):
title = TextField()
abstract = TextField()
doi = CharField(unique=True)
bibtex = TextField()
first_author = ForeignKeyField(Author)
publication = ForeignKeyField(Publication)
doctype = ForeignKeyField(Doctype)
arxiv_identifier = CharField(unique=True)
bibcode = CharField(unique=True)
year = CharField()
pubdate = DateField()
pdf_downloaded = BooleanField()
class PaperAuthors(BaseModel):
paper = ForeignKeyField(Paper)
author = ForeignKeyField(Author)
class PaperKeywords(BaseModel):
paper = ForeignKeyField(Paper)
keyword = ForeignKeyField(Keyword)