From 77aa58996a6add304fbc288161b3c9a396b64c76 Mon Sep 17 00:00:00 2001 From: Jake Moshenko Date: Wed, 6 Jan 2016 13:52:27 -0500 Subject: [PATCH] Fix the db definition for torrentinfo and add migration --- data/database.py | 10 +++-- ..._add_the_torrentinfo_table_and_torrent_.py | 38 ++++++++++++++++++ test/data/test.db | Bin 1130496 -> 1134592 bytes 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 data/migrations/versions/23ca04d0bc8e_add_the_torrentinfo_table_and_torrent_.py diff --git a/data/database.py b/data/database.py index c8fbc27ea..ffea9aadd 100644 --- a/data/database.py +++ b/data/database.py @@ -853,9 +853,13 @@ class TorrentInfo(BaseModel): piece_length = IntegerField() pieces = Base64BinaryField() - indexes = ( - (('storage', 'piece_length'), True), - ) + class Meta: + database = db + read_slaves = (read_slave,) + indexes = ( + # we may want to compute the piece hashes multiple times with different piece lengths + (('storage', 'piece_length'), True), + ) all_models = [User, Repository, Image, AccessToken, Role, RepositoryPermission, Visibility, diff --git a/data/migrations/versions/23ca04d0bc8e_add_the_torrentinfo_table_and_torrent_.py b/data/migrations/versions/23ca04d0bc8e_add_the_torrentinfo_table_and_torrent_.py new file mode 100644 index 000000000..1e16f9838 --- /dev/null +++ b/data/migrations/versions/23ca04d0bc8e_add_the_torrentinfo_table_and_torrent_.py @@ -0,0 +1,38 @@ +"""Add the torrentinfo table and torrent fields on blobuploads. + +Revision ID: 23ca04d0bc8e +Revises: 471caec2cb66 +Create Date: 2016-01-06 13:25:24.597037 + +""" + +# revision identifiers, used by Alembic. +revision = '23ca04d0bc8e' +down_revision = '471caec2cb66' + +from alembic import op +import sqlalchemy as sa + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.create_table('torrentinfo', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('storage_id', sa.Integer(), nullable=False), + sa.Column('piece_length', sa.Integer(), nullable=False), + sa.Column('pieces', sa.Text(), nullable=False), + sa.ForeignKeyConstraint(['storage_id'], ['imagestorage.id'], name=op.f('fk_torrentinfo_storage_id_imagestorage')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_torrentinfo')) + ) + op.create_index('torrentinfo_storage_id', 'torrentinfo', ['storage_id'], unique=False) + op.create_index('torrentinfo_storage_id_piece_length', 'torrentinfo', ['storage_id', 'piece_length'], unique=True) + op.add_column(u'blobupload', sa.Column('piece_hashes', sa.Text(), nullable=False)) + op.add_column(u'blobupload', sa.Column('piece_sha_state', sa.Text(), nullable=True)) + ### end Alembic commands ### + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column(u'blobupload', 'piece_sha_state') + op.drop_column(u'blobupload', 'piece_hashes') + op.drop_table('torrentinfo') + ### end Alembic commands ### diff --git a/test/data/test.db b/test/data/test.db index 16a8c3581558f6c9b3b3fff7608dc476f4550d73..e26e28a9b1da8f968bad8eb721f89980e8eb8dc7 100644 GIT binary patch delta 54554 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