From 0aa46947ddbefc43e98c080836c4930ea119c310 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Thu, 5 May 2022 02:59:23 +0200 Subject: [PATCH] feat(db): Expand database via alembic t include users and time budgets --- .../64bc9837edef_add_time_budgets_table.py | 40 +++++++++++++++++++ .../68d8f4d96043_add_kodi_instances_table.py | 20 +++++----- db/versions/7218e9517c00_add_users_table.py | 30 ++++++++++++++ 3 files changed, 81 insertions(+), 9 deletions(-) create mode 100644 db/versions/64bc9837edef_add_time_budgets_table.py create mode 100644 db/versions/7218e9517c00_add_users_table.py diff --git a/db/versions/64bc9837edef_add_time_budgets_table.py b/db/versions/64bc9837edef_add_time_budgets_table.py new file mode 100644 index 0000000..57695bc --- /dev/null +++ b/db/versions/64bc9837edef_add_time_budgets_table.py @@ -0,0 +1,40 @@ +"""Add time budgets table + +Revision ID: 64bc9837edef +Revises: 7218e9517c00 +Create Date: 2022-05-05 01:14:04.395901 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '64bc9837edef' +down_revision = '7218e9517c00' +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table( + u"time-budget", + sa.Column(u"id", sa.Integer, primary_key=True), + sa.Column(u"user-id", sa.Integer, nullable=False), + sa.Column(u"time-budget-s", sa.Integer, nullable=False, server_default=u"0"), + mysql_charset="utf8", + mysql_collate="utf8_unicode_ci" + ) + op.create_foreign_key( + u"FK_time-budget_users", + u"time-budget", + u"users", + [u"user-id"], + [u"id"], + onupdate="CASCADE", + ondelete="RESTRICT") + + +def downgrade(): + op.drop_constraint(u"FK_time-budget_users", "time-budget", type_="foreignkey") + op.drop_table(u"time-budget") diff --git a/db/versions/68d8f4d96043_add_kodi_instances_table.py b/db/versions/68d8f4d96043_add_kodi_instances_table.py index 8cc0fd5..67a92f7 100644 --- a/db/versions/68d8f4d96043_add_kodi_instances_table.py +++ b/db/versions/68d8f4d96043_add_kodi_instances_table.py @@ -18,16 +18,18 @@ depends_on = None def upgrade(): op.create_table( - 'kodi-instances', - sa.Column('id', sa.Integer, primary_key=True), - sa.Column('webserver-proto', sa.String(10), nullable=False, server_default="ws"), - sa.Column('webserver-addr', sa.String(40), nullable=False, server_default="localhost"), - sa.Column('webserver-port', sa.Integer, nullable=False, server_default="8080"), - sa.Column('webserver-jsonrpcpath', sa.String(10), nullable=False, server_default="/jsonrpc"), - sa.Column('webserver-username', sa.String(48)), - sa.Column('webserver-password', sa.String(48)) + u"kodi-instances", + sa.Column(u"id", sa.Integer, primary_key=True), + sa.Column(u"webserver-proto", sa.String(10), nullable=False, server_default=u"ws"), + sa.Column(u"webserver-addr", sa.String(40), nullable=False, server_default=u"localhost"), + sa.Column(u"webserver-port", sa.Integer, nullable=False, server_default=u"8080"), + sa.Column(u"webserver-jsonrpcpath", sa.String(10), nullable=False, server_default=u"/jsonrpc"), + sa.Column(u"webserver-username", sa.String(48)), + sa.Column(u"webserver-password", sa.String(48)), + mysql_charset="utf8", + mysql_collate="utf8_unicode_ci" ) def downgrade(): - op.drop_table('kodi-instances') + op.drop_table(u"kodi-instances") diff --git a/db/versions/7218e9517c00_add_users_table.py b/db/versions/7218e9517c00_add_users_table.py new file mode 100644 index 0000000..ad107e7 --- /dev/null +++ b/db/versions/7218e9517c00_add_users_table.py @@ -0,0 +1,30 @@ +"""Add users table + +Revision ID: 7218e9517c00 +Revises: 68d8f4d96043 +Create Date: 2022-05-04 22:49:36.690140 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '7218e9517c00' +down_revision = '68d8f4d96043' +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table( + u"users", + sa.Column(u"id", sa.Integer, primary_key=True), + sa.Column(u"username", sa.String(48), nullable=False), + mysql_charset="utf8", + mysql_collate="utf8_unicode_ci" + ) + + +def downgrade(): + op.drop_table(u"users")