diff options
-rw-r--r-- | fietsboek/alembic/versions/20220626_16ad57eec8bb.py | 33 | ||||
-rw-r--r-- | fietsboek/alembic/versions/20220702_1b4b1c179e5a.py | 147 | ||||
-rw-r--r-- | fietsboek/models/user.py | 1 |
3 files changed, 147 insertions, 34 deletions
diff --git a/fietsboek/alembic/versions/20220626_16ad57eec8bb.py b/fietsboek/alembic/versions/20220626_16ad57eec8bb.py deleted file mode 100644 index d10c543..0000000 --- a/fietsboek/alembic/versions/20220626_16ad57eec8bb.py +++ /dev/null @@ -1,33 +0,0 @@ -"""empty message - -Revision ID: 16ad57eec8bb -Revises: -Create Date: 2022-06-26 21:40:37.366364 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '16ad57eec8bb' -down_revision = None -branch_labels = None -depends_on = None - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('models', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.Text(), nullable=True), - sa.Column('value', sa.Integer(), nullable=True), - sa.PrimaryKeyConstraint('id', name=op.f('pk_models')) - ) - op.create_index('my_index', 'models', ['name'], unique=True, mysql_length=255) - # ### end Alembic commands ### - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index('my_index', table_name='models', mysql_length=255) - op.drop_table('models') - # ### end Alembic commands ### diff --git a/fietsboek/alembic/versions/20220702_1b4b1c179e5a.py b/fietsboek/alembic/versions/20220702_1b4b1c179e5a.py new file mode 100644 index 0000000..af6d73a --- /dev/null +++ b/fietsboek/alembic/versions/20220702_1b4b1c179e5a.py @@ -0,0 +1,147 @@ +"""Initial database layout + +Revision ID: 1b4b1c179e5a +Revises: +Create Date: 2022-07-02 20:36:23.501403 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '1b4b1c179e5a' +down_revision = None +branch_labels = None +depends_on = None + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('badges', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('title', sa.Text(), nullable=True), + sa.Column('image', sa.LargeBinary(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_badges')) + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.Text(), nullable=True), + sa.Column('password', sa.LargeBinary(), nullable=True), + sa.Column('salt', sa.LargeBinary(), nullable=True), + sa.Column('email', sa.Text(), nullable=True), + sa.Column('is_admin', sa.Boolean(), nullable=True), + sa.Column('is_verified', sa.Boolean(), nullable=True), + sa.PrimaryKeyConstraint('id', name=op.f('pk_users')) + ) + op.create_index('idx_users_email', 'users', ['email'], unique=True) + op.create_table('friend_requests', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('sender_id', sa.Integer(), nullable=True), + sa.Column('recipient_id', sa.Integer(), nullable=True), + sa.Column('date', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['recipient_id'], ['users.id'], name=op.f('fk_friend_requests_recipient_id_users')), + sa.ForeignKeyConstraint(['sender_id'], ['users.id'], name=op.f('fk_friend_requests_sender_id_users')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_friend_requests')), + sa.UniqueConstraint('sender_id', 'recipient_id', name=op.f('uq_friend_requests_sender_id')) + ) + op.create_table('friends_assoc', + sa.Column('user_1_id', sa.Integer(), nullable=False), + sa.Column('user_2_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['user_1_id'], ['users.id'], name=op.f('fk_friends_assoc_user_1_id_users')), + sa.ForeignKeyConstraint(['user_2_id'], ['users.id'], name=op.f('fk_friends_assoc_user_2_id_users')), + sa.PrimaryKeyConstraint('user_1_id', 'user_2_id', name=op.f('pk_friends_assoc')) + ) + op.create_table('tokens', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=True), + sa.Column('uuid', sa.Text(), nullable=True), + sa.Column('token_type', sa.Enum('VERIFY_EMAIL', 'RESET_PASSWORD', name='tokentype'), nullable=True), + sa.Column('date', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_tokens_user_id_users')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_tokens')) + ) + op.create_index('idx_token_uuid', 'tokens', ['uuid'], unique=True) + op.create_table('tracks', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('owner_id', sa.Integer(), nullable=True), + sa.Column('title', sa.Text(), nullable=True), + sa.Column('description', sa.Text(), nullable=True), + sa.Column('date', sa.DateTime(), nullable=True), + sa.Column('gpx', sa.LargeBinary(), nullable=True), + sa.Column('visibility', sa.Enum('PRIVATE', 'FRIENDS', 'FRIENDS_TAGGED', 'LOGGED_IN', 'PUBLIC', name='visibility'), nullable=True), + sa.Column('link_secret', sa.Text(), nullable=True), + sa.ForeignKeyConstraint(['owner_id'], ['users.id'], name=op.f('fk_tracks_owner_id_users')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_tracks')) + ) + op.create_table('uploads', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('uploaded_at', sa.DateTime(), nullable=True), + sa.Column('owner_id', sa.Integer(), nullable=True), + sa.Column('gpx', sa.LargeBinary(), nullable=True), + sa.ForeignKeyConstraint(['owner_id'], ['users.id'], name=op.f('fk_uploads_owner_id_users')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_uploads')) + ) + op.create_table('comments', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('author_id', sa.Integer(), nullable=True), + sa.Column('track_id', sa.Integer(), nullable=True), + sa.Column('date', sa.DateTime(), nullable=True), + sa.Column('title', sa.Text(), nullable=True), + sa.Column('text', sa.Text(), nullable=True), + sa.ForeignKeyConstraint(['author_id'], ['users.id'], name=op.f('fk_comments_author_id_users')), + sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_comments_track_id_tracks')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_comments')) + ) + op.create_table('tags', + sa.Column('track_id', sa.Integer(), nullable=False), + sa.Column('tag', sa.Text(), nullable=False), + sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_tags_track_id_tracks')), + sa.PrimaryKeyConstraint('track_id', 'tag', name=op.f('pk_tags')) + ) + op.create_table('track_badge_assoc', + sa.Column('track_id', sa.Integer(), nullable=False), + sa.Column('badge_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['badge_id'], ['badges.id'], name=op.f('fk_track_badge_assoc_badge_id_badges')), + sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_track_badge_assoc_track_id_tracks')), + sa.PrimaryKeyConstraint('track_id', 'badge_id', name=op.f('pk_track_badge_assoc')) + ) + op.create_table('track_cache', + sa.Column('track_id', sa.Integer(), nullable=False), + sa.Column('length', sa.Float(), nullable=True), + sa.Column('uphill', sa.Float(), nullable=True), + sa.Column('downhill', sa.Float(), nullable=True), + sa.Column('moving_time', sa.Float(), nullable=True), + sa.Column('stopped_time', sa.Float(), nullable=True), + sa.Column('max_speed', sa.Float(), nullable=True), + sa.Column('avg_speed', sa.Float(), nullable=True), + sa.Column('start_time', sa.DateTime(), nullable=True), + sa.Column('end_time', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_track_cache_track_id_tracks')), + sa.PrimaryKeyConstraint('track_id', name=op.f('pk_track_cache')) + ) + op.create_table('track_people_assoc', + sa.Column('track_id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['track_id'], ['tracks.id'], name=op.f('fk_track_people_assoc_track_id_tracks')), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_track_people_assoc_user_id_users')), + sa.PrimaryKeyConstraint('track_id', 'user_id', name=op.f('pk_track_people_assoc')) + ) + # ### end Alembic commands ### + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('track_people_assoc') + op.drop_table('track_cache') + op.drop_table('track_badge_assoc') + op.drop_table('tags') + op.drop_table('comments') + op.drop_table('uploads') + op.drop_table('tracks') + op.drop_index('idx_token_uuid', table_name='tokens') + op.drop_table('tokens') + op.drop_table('friends_assoc') + op.drop_table('friend_requests') + op.drop_index('idx_users_email', table_name='users') + op.drop_table('users') + op.drop_table('badges') + # ### end Alembic commands ### diff --git a/fietsboek/models/user.py b/fietsboek/models/user.py index 75707e2..d70c99e 100644 --- a/fietsboek/models/user.py +++ b/fietsboek/models/user.py @@ -208,7 +208,6 @@ class User(Base): object_session(self).execute(stmt) -Index('idx_users_name', User.name, unique=True) Index('idx_users_email', User.email, unique=True) |