[odrs-web] Use actual sqlalchemy boolean types
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [odrs-web] Use actual sqlalchemy boolean types
- Date: Tue, 2 Jul 2019 09:25:12 +0000 (UTC)
commit 30489744200986a80979083f328688f0e0a93429
Author: Richard Hughes <richard hughsie com>
Date: Tue Jul 2 10:18:03 2019 +0100
Use actual sqlalchemy boolean types
It seems somewhat wasteful using a INTEGER to store just one bit.
app_data/migrations/versions/bbbcd54c69ac_.py | 60 +++++++++++++++++++++++++++
app_data/odrs/models.py | 12 +++---
2 files changed, 66 insertions(+), 6 deletions(-)
---
diff --git a/app_data/migrations/versions/bbbcd54c69ac_.py b/app_data/migrations/versions/bbbcd54c69ac_.py
new file mode 100644
index 0000000..7f4bfd6
--- /dev/null
+++ b/app_data/migrations/versions/bbbcd54c69ac_.py
@@ -0,0 +1,60 @@
+"""
+
+Revision ID: bbbcd54c69ac
+Revises: 1b966aab67a1
+Create Date: 2019-07-02 10:06:20.015220
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = 'bbbcd54c69ac'
+down_revision = '1b966aab67a1'
+
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.dialects import mysql
+
+def upgrade():
+ op.alter_column('eventlog', 'important',
+ existing_type=mysql.INTEGER(display_width=11),
+ type_=sa.Boolean(),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('moderators', 'is_admin',
+ existing_type=mysql.TINYINT(display_width=4),
+ type_=sa.Boolean(),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('moderators', 'is_enabled',
+ existing_type=mysql.TINYINT(display_width=4),
+ type_=sa.Boolean(),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('users', 'is_banned',
+ existing_type=mysql.INTEGER(display_width=11),
+ type_=sa.Boolean(),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+
+
+def downgrade():
+ op.alter_column('users', 'is_banned',
+ existing_type=sa.Boolean(),
+ type_=mysql.INTEGER(display_width=11),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('moderators', 'is_enabled',
+ existing_type=sa.Boolean(),
+ type_=mysql.TINYINT(display_width=4),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('moderators', 'is_admin',
+ existing_type=sa.Boolean(),
+ type_=mysql.TINYINT(display_width=4),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
+ op.alter_column('eventlog', 'important',
+ existing_type=sa.Boolean(),
+ type_=mysql.INTEGER(display_width=11),
+ existing_nullable=True,
+ existing_server_default=sa.text('0'))
diff --git a/app_data/odrs/models.py b/app_data/odrs/models.py
index ec174af..7350a49 100644
--- a/app_data/odrs/models.py
+++ b/app_data/odrs/models.py
@@ -11,7 +11,7 @@ import datetime
from werkzeug.security import generate_password_hash, check_password_hash
-from sqlalchemy import Column, Integer, String, Text, DateTime, Index
+from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, Index
from odrs import db
@@ -75,12 +75,12 @@ class User(db.Model):
date_created = Column(DateTime, nullable=False, default=datetime.datetime.utcnow)
user_hash = Column(Text)
karma = Column(Integer, default=0)
- is_banned = Column(Integer, default=0)
+ is_banned = Column(Boolean, default=False)
def __init__(self, user_hash=None):
self.user_hash = user_hash
self.karma = 0
- self.is_banned = 0
+ self.is_banned = False
def __repr__(self):
return 'User object %s' % self.user_id
@@ -161,7 +161,7 @@ class Event(db.Model):
user_hash = Column(Text)
message = Column(Text)
app_id = Column(Text)
- important = Column(Integer, default=0)
+ important = Column(Boolean, default=False)
def __init__(self, user_addr, user_hash=None, app_id=None, message=None, important=False):
self.user_addr = user_addr
@@ -183,8 +183,8 @@ class Moderator(db.Model):
username = Column(Text)
password_hash = Column('password', Text)
display_name = Column(Text)
- is_enabled = Column(Integer, default=0)
- is_admin = Column(Integer, default=0)
+ is_enabled = Column(Boolean, default=False)
+ is_admin = Column(Boolean, default=False)
user_hash = Column(Text)
locales = Column(Text)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]