diff options
Diffstat (limited to 'backend/zmusic/database.py')
-rw-r--r-- | backend/zmusic/database.py | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/backend/zmusic/database.py b/backend/zmusic/database.py index 6935a45..8050ab8 100644 --- a/backend/zmusic/database.py +++ b/backend/zmusic/database.py @@ -2,24 +2,15 @@ from zmusic import db from uuid import uuid4 import time -# This is indeed ugly, but it was suggested by the SQLAlchemy documention -# verbatim as a way of dealing with str-centric apps. -class CoerceUTF8(db.TypeDecorator): - impl = db.Unicode - def process_bind_param(self, value, dialect): - if isinstance(value, str): - value = value.decode('utf-8') - return value - class Song(db.Model): __tablename__ = 'songs' - filename = db.Column(CoerceUTF8, primary_key=True) - id = db.Column(CoerceUTF8, nullable=False, index=True) - title = db.Column(CoerceUTF8) - album = db.Column(CoerceUTF8) - artist = db.Column(CoerceUTF8) - mimetype = db.Column(CoerceUTF8) + filename = db.Column(db.Unicode, primary_key=True) + id = db.Column(db.Unicode, nullable=False, index=True) + title = db.Column(db.Unicode) + album = db.Column(db.Unicode) + artist = db.Column(db.Unicode) + mimetype = db.Column(db.Unicode) year = db.Column(db.Integer) track = db.Column(db.Integer) disc = db.Column(db.Integer) @@ -58,15 +49,15 @@ class Song(db.Model): class Download(db.Model): __tablename__ = 'downloads' - id = db.Column(CoerceUTF8, primary_key=True) - leader_id = db.Column(CoerceUTF8) + id = db.Column(db.Unicode, primary_key=True) + leader_id = db.Column(db.Unicode) time = db.Column(db.Integer) - ip = db.Column(CoerceUTF8, index=True) - useragent = db.Column(CoerceUTF8) - song_id = db.Column(CoerceUTF8, db.ForeignKey(Song.id)) - artist = db.Column(CoerceUTF8) - album = db.Column(CoerceUTF8) - title = db.Column(CoerceUTF8) + ip = db.Column(db.Unicode, index=True) + useragent = db.Column(db.Unicode) + song_id = db.Column(db.Unicode, db.ForeignKey(Song.id)) + artist = db.Column(db.Unicode) + album = db.Column(db.Unicode) + title = db.Column(db.Unicode) is_zip = db.Column(db.Boolean) def __init__(self, song, request): |