diff options
Diffstat (limited to 'db.py')
-rw-r--r-- | db.py | 56 |
1 files changed, 0 insertions, 56 deletions
@@ -1,56 +0,0 @@ -import settings - -from sqlalchemy import create_engine, Column, Integer, String, DateTime, Text, Index, ForeignKey -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import sessionmaker, relation, backref -from sqlalchemy.orm.exc import NoResultFound - -engine = create_engine(settings.db_path) - -Base = declarative_base(bind = engine) - -class Paste(Base): - __tablename__ = 'paste' - - id = Column(Integer, primary_key = True) - hash = Column(String, unique = True, index = True) - nick = Column(String) - date = Column(DateTime, nullable = False) - syntax = Column(String) - title = Column(String) - text = Column(Text, nullable = False) - ip = Column(String) - - def __init__(self, hash, nick, date, syntax, title, text, ip=None): - self.nick = nick - self.hash = hash - self.date = date - self.syntax = syntax - self.title = title - self.text = text - self.ip = ip - - def __repr__(self): - return '<Paste(%d, "%s", "%s", "%s", "%s")>' % (self.id, self.hash, self.nick, self.date.ctime(), self.title) - -class Cache(Base): - __tablename__ = 'cache' - - id = Column(Integer, primary_key = True) - paste_hash = Column(String, ForeignKey('paste.hash'), index = True) - paste = relation(Paste, primaryjoin = paste_hash == Paste.hash, lazy = False) - syntax_name = Column(String) - text = Column(Text, nullable = False) - - def __init__(self, hash, syntax_name, text): - self.paste_hash = hash - self.syntax_name = syntax_name - self.text = text - - def __repr__(self): - return '<Cache(%d, "%s")>' % (self.id, self.paste_hash) - -Base.metadata.create_all() -Session = sessionmaker(bind = engine, autoflush = True, autocommit = False) - -# vim: noet ts=4 |