mirror of https://github.com/stijndcl/didier
246 lines
9.4 KiB
Python
246 lines
9.4 KiB
Python
"""Initial migration
|
|
|
|
Revision ID: 515dc3f52c6d
|
|
Revises:
|
|
Create Date: 2022-09-18 00:30:56.348634
|
|
|
|
"""
|
|
import sqlalchemy as sa
|
|
|
|
from alembic import op
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "515dc3f52c6d"
|
|
down_revision = None
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table(
|
|
"custom_commands",
|
|
sa.Column("command_id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sa.Text(), nullable=False),
|
|
sa.Column("indexed_name", sa.Text(), nullable=False),
|
|
sa.Column("response", sa.Text(), nullable=False),
|
|
sa.PrimaryKeyConstraint("command_id"),
|
|
sa.UniqueConstraint("name"),
|
|
)
|
|
with op.batch_alter_table("custom_commands", schema=None) as batch_op:
|
|
batch_op.create_index(batch_op.f("ix_custom_commands_indexed_name"), ["indexed_name"], unique=False)
|
|
|
|
op.create_table(
|
|
"dad_jokes",
|
|
sa.Column("dad_joke_id", sa.Integer(), nullable=False),
|
|
sa.Column("joke", sa.Text(), nullable=False),
|
|
sa.PrimaryKeyConstraint("dad_joke_id"),
|
|
)
|
|
op.create_table(
|
|
"links",
|
|
sa.Column("link_id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sa.Text(), nullable=False),
|
|
sa.Column("url", sa.Text(), nullable=False),
|
|
sa.PrimaryKeyConstraint("link_id"),
|
|
sa.UniqueConstraint("name"),
|
|
)
|
|
op.create_table(
|
|
"meme",
|
|
sa.Column("meme_id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sa.Text(), nullable=False),
|
|
sa.Column("template_id", sa.Integer(), nullable=False),
|
|
sa.Column("field_count", sa.Integer(), nullable=False),
|
|
sa.PrimaryKeyConstraint("meme_id"),
|
|
sa.UniqueConstraint("name"),
|
|
sa.UniqueConstraint("template_id"),
|
|
)
|
|
op.create_table(
|
|
"tasks",
|
|
sa.Column("task_id", sa.Integer(), nullable=False),
|
|
sa.Column("task", sa.Enum("BIRTHDAYS", "SCHEDULES", "UFORA_ANNOUNCEMENTS", name="tasktype"), nullable=False),
|
|
sa.Column("previous_run", sa.DateTime(timezone=True), nullable=True),
|
|
sa.PrimaryKeyConstraint("task_id"),
|
|
sa.UniqueConstraint("task"),
|
|
)
|
|
op.create_table(
|
|
"ufora_courses",
|
|
sa.Column("course_id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sa.Text(), nullable=False),
|
|
sa.Column("code", sa.Text(), nullable=False),
|
|
sa.Column("year", sa.Integer(), nullable=False),
|
|
sa.Column("compulsory", sa.Boolean(), server_default="1", nullable=False),
|
|
sa.Column("role_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("overarching_role_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("log_announcements", sa.Boolean(), server_default="0", nullable=False),
|
|
sa.PrimaryKeyConstraint("course_id"),
|
|
sa.UniqueConstraint("code"),
|
|
sa.UniqueConstraint("name"),
|
|
)
|
|
op.create_table("users", sa.Column("user_id", sa.BigInteger(), nullable=False), sa.PrimaryKeyConstraint("user_id"))
|
|
op.create_table(
|
|
"wordle_word",
|
|
sa.Column("word_id", sa.Integer(), nullable=False),
|
|
sa.Column("word", sa.Text(), nullable=False),
|
|
sa.Column("day", sa.Date(), nullable=False),
|
|
sa.PrimaryKeyConstraint("word_id"),
|
|
sa.UniqueConstraint("day"),
|
|
)
|
|
op.create_table(
|
|
"bank",
|
|
sa.Column("bank_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("dinks", sa.BigInteger(), server_default="0", nullable=False),
|
|
sa.Column("invested", sa.BigInteger(), server_default="0", nullable=False),
|
|
sa.Column("interest_level", sa.Integer(), server_default="1", nullable=False),
|
|
sa.Column("capacity_level", sa.Integer(), server_default="1", nullable=False),
|
|
sa.Column("rob_level", sa.Integer(), server_default="1", nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("bank_id"),
|
|
)
|
|
op.create_table(
|
|
"birthdays",
|
|
sa.Column("birthday_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("birthday", sa.Date(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("birthday_id"),
|
|
)
|
|
op.create_table(
|
|
"bookmarks",
|
|
sa.Column("bookmark_id", sa.Integer(), nullable=False),
|
|
sa.Column("label", sa.Text(), nullable=False),
|
|
sa.Column("jump_url", sa.Text(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("bookmark_id"),
|
|
sa.UniqueConstraint("user_id", "label"),
|
|
)
|
|
op.create_table(
|
|
"custom_command_aliases",
|
|
sa.Column("alias_id", sa.Integer(), nullable=False),
|
|
sa.Column("alias", sa.Text(), nullable=False),
|
|
sa.Column("indexed_alias", sa.Text(), nullable=False),
|
|
sa.Column("command_id", sa.Integer(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["command_id"],
|
|
["custom_commands.command_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("alias_id"),
|
|
sa.UniqueConstraint("alias"),
|
|
)
|
|
with op.batch_alter_table("custom_command_aliases", schema=None) as batch_op:
|
|
batch_op.create_index(batch_op.f("ix_custom_command_aliases_indexed_alias"), ["indexed_alias"], unique=False)
|
|
|
|
op.create_table(
|
|
"deadlines",
|
|
sa.Column("deadline_id", sa.Integer(), nullable=False),
|
|
sa.Column("course_id", sa.Integer(), nullable=True),
|
|
sa.Column("name", sa.Text(), nullable=False),
|
|
sa.Column("deadline", sa.DateTime(timezone=True), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["course_id"],
|
|
["ufora_courses.course_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("deadline_id"),
|
|
)
|
|
op.create_table(
|
|
"nightly_data",
|
|
sa.Column("nightly_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("last_nightly", sa.Date(), nullable=True),
|
|
sa.Column("count", sa.Integer(), server_default="0", nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("nightly_id"),
|
|
)
|
|
op.create_table(
|
|
"ufora_announcements",
|
|
sa.Column("announcement_id", sa.Integer(), nullable=False),
|
|
sa.Column("course_id", sa.Integer(), nullable=True),
|
|
sa.Column("publication_date", sa.Date(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["course_id"],
|
|
["ufora_courses.course_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("announcement_id"),
|
|
)
|
|
op.create_table(
|
|
"ufora_course_aliases",
|
|
sa.Column("alias_id", sa.Integer(), nullable=False),
|
|
sa.Column("alias", sa.Text(), nullable=False),
|
|
sa.Column("course_id", sa.Integer(), nullable=True),
|
|
sa.ForeignKeyConstraint(
|
|
["course_id"],
|
|
["ufora_courses.course_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("alias_id"),
|
|
sa.UniqueConstraint("alias"),
|
|
)
|
|
op.create_table(
|
|
"wordle_guesses",
|
|
sa.Column("wordle_guess_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("guess", sa.Text(), nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("wordle_guess_id"),
|
|
)
|
|
op.create_table(
|
|
"wordle_stats",
|
|
sa.Column("wordle_stats_id", sa.Integer(), nullable=False),
|
|
sa.Column("user_id", sa.BigInteger(), nullable=True),
|
|
sa.Column("last_win", sa.Date(), nullable=True),
|
|
sa.Column("games", sa.Integer(), server_default="0", nullable=False),
|
|
sa.Column("wins", sa.Integer(), server_default="0", nullable=False),
|
|
sa.Column("current_streak", sa.Integer(), server_default="0", nullable=False),
|
|
sa.Column("highest_streak", sa.Integer(), server_default="0", nullable=False),
|
|
sa.ForeignKeyConstraint(
|
|
["user_id"],
|
|
["users.user_id"],
|
|
),
|
|
sa.PrimaryKeyConstraint("wordle_stats_id"),
|
|
)
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_table("wordle_stats")
|
|
op.drop_table("wordle_guesses")
|
|
op.drop_table("ufora_course_aliases")
|
|
op.drop_table("ufora_announcements")
|
|
op.drop_table("nightly_data")
|
|
op.drop_table("deadlines")
|
|
with op.batch_alter_table("custom_command_aliases", schema=None) as batch_op:
|
|
batch_op.drop_index(batch_op.f("ix_custom_command_aliases_indexed_alias"))
|
|
|
|
op.drop_table("custom_command_aliases")
|
|
op.drop_table("bookmarks")
|
|
op.drop_table("birthdays")
|
|
op.drop_table("bank")
|
|
op.drop_table("wordle_word")
|
|
op.drop_table("users")
|
|
op.drop_table("ufora_courses")
|
|
op.drop_table("tasks")
|
|
op.drop_table("meme")
|
|
op.drop_table("links")
|
|
op.drop_table("dad_jokes")
|
|
with op.batch_alter_table("custom_commands", schema=None) as batch_op:
|
|
batch_op.drop_index(batch_op.f("ix_custom_commands_indexed_name"))
|
|
|
|
op.drop_table("custom_commands")
|
|
# ### end Alembic commands ###
|