def do_upgrade():
    op.create_table(
        'accreqREQUEST',
        db.Column('id', db.Integer(display_width=15), nullable=False),
        db.Column('status', db.String(length=1),
                  nullable=False),
        db.Column('receiver_user_id', db.Integer(display_width=15),
                  nullable=False),
        db.Column('sender_user_id', db.Integer(display_width=15),
                  nullable=True),
        db.Column('sender_full_name', db.String(length=255), nullable=False),
        db.Column('sender_email', db.String(length=255), nullable=False),
        db.Column('recid', db.Integer(display_width=15), nullable=False),
        db.Column('created', db.DateTime(), nullable=False),
        db.Column('modified', db.DateTime(), nullable=False),
        db.Column('justification', db.Text(), nullable=False),
        db.Column('message', db.Text(), nullable=False),
        db.Column('link_id', db.Integer(display_width=15), nullable=True),
        db.ForeignKeyConstraint(['receiver_user_id'], [u'user.id'], ),
        db.ForeignKeyConstraint(['sender_user_id'], [u'user.id'], ),
        db.ForeignKeyConstraint(['link_id'], [u'accreqLINK.id'], ),
        db.PrimaryKeyConstraint('id'),
        mysql_charset='utf8',
        mysql_engine='MyISAM'
    )
    op.create_index(
        op.f('ix_accreqREQUEST_created'), 'accreqREQUEST', ['created'],
        unique=False)
    op.create_index(
        op.f('ix_accreqREQUEST_recid'), 'accreqREQUEST', ['recid'],
        unique=False)
    op.create_index(
        op.f('ix_accreqREQUEST_status'), 'accreqREQUEST', ['status'],
        unique=False)

    op.create_table(
        'accreqLINK',
        db.Column('id', db.Integer(display_width=15), nullable=False),
        db.Column('token', db.Text(), nullable=False),
        db.Column('owner_user_id', db.Integer(display_width=15),
                  nullable=False),
        db.Column('created', db.DateTime(), nullable=False),
        db.Column('expires_at', db.DateTime(), nullable=True),
        db.Column('revoked_at', db.DateTime(), nullable=True),
        db.Column('title', db.String(length=255), nullable=False),
        db.Column('description', db.Text(), nullable=False),
        db.ForeignKeyConstraint(['owner_user_id'], [u'user.id'], ),
        db.PrimaryKeyConstraint('id'),
        mysql_charset='utf8',
        mysql_engine='MyISAM'
    )
    op.create_index(
        op.f('ix_accreqLINK_created'), 'accreqLINK', ['created'], unique=False)
    op.create_index(
        op.f('ix_accreqLINK_revoked_at'), 'accreqLINK', ['revoked_at'],
        unique=False)
def do_upgrade():
    """Implement your upgrades here."""
    op.create_table('quotaUSAGE',
    db.Column('id', db.Integer(display_width=15), nullable=False),
    db.Column('object_type', db.String(length=40), nullable=True),
    db.Column('object_id', db.String(length=250), nullable=True),
    db.Column('metric', db.String(length=40), nullable=True),
    db.Column('value', db.BigInteger(), nullable=False),
    db.Column('modified', db.DateTime(), nullable=False),
    db.PrimaryKeyConstraint('id'),
    db.UniqueConstraint('object_type', 'object_id', 'metric'),
    mysql_charset='utf8',
    mysql_engine='MyISAM'
    )
    op.create_index(op.f('ix_quotaUSAGE_object_id'), 'quotaUSAGE', ['object_id'], unique=False)
    op.create_index(op.f('ix_quotaUSAGE_object_type'), 'quotaUSAGE', ['object_type'], unique=False)
Пример #3
0
def do_upgrade():
    """Upgrade recipe.

    Adds two new columns (password_salt and password_scheme) and migrates
    emails to password salt.
    """
    op.add_column('user', db.Column('password_salt', db.String(length=255),
                                    nullable=True))
    op.add_column('user', db.Column('password_scheme', db.String(length=50),
                                    nullable=False))

    # Temporary column needed for data migration
    op.add_column('user', db.Column('new_password', db.String(length=255)))

    # Migrate emails to password_salt
    m = db.MetaData(bind=db.engine)
    m.reflect()
    u = m.tables['user']

    conn = db.engine.connect()
    conn.execute(u.update().values(
        password_salt=u.c.email,
        password_scheme='invenio_aes_encrypted_email'
    ))

    # Migrate password blob to password varchar.
    for row in conn.execute(select([u])):
        # NOTE: Empty string passwords were stored as empty strings
        # instead of a hashed version, hence they must be treated differently.
        legacy_pw = row[u.c.password] or mysql_aes_encrypt(row[u.c.email], "")

        stmt = u.update().where(
            u.c.id == row[u.c.id]
        ).values(
            new_password=hashlib.sha256(legacy_pw).hexdigest()
        )
        conn.execute(stmt)

    # Create index
    op.create_index(
        op.f('ix_user_password_scheme'),
        'user',
        ['password_scheme'],
        unique=False
    )

    # Drop old database column and rename new.
    op.drop_column('user', 'password')
    op.alter_column(
        'user', 'new_password',
        new_column_name='password',
        existing_type=mysql.VARCHAR(255),
        existing_nullable=True,
    )
def do_upgrade():
    """Implement your upgrades here."""
    try:
        op.drop_index('ix_usergroup_name', table_name='usergroup')
    except OperationalError:
        pass
    try:
        op.drop_index('name', table_name='usergroup')
    except OperationalError:
        pass
    op.create_index(op.f('ix_usergroup_name'), 'usergroup', ['name'],
                    unique=True)
def do_upgrade():
    """Implement your upgrades here."""
    try:
        op.drop_index('ix_usergroup_name', table_name='usergroup')
    except OperationalError:
        pass
    try:
        op.drop_index('name', table_name='usergroup')
    except OperationalError:
        pass
    op.create_index(op.f('ix_usergroup_name'), 'usergroup', ['name'],
                    unique=True)
Пример #6
0
def do_upgrade():
    """Upgrade recipe.

    Adds two new columns (password_salt and password_scheme) and migrates
    emails to password salt.
    """
    op.add_column(
        'user', db.Column('password_salt',
                          db.String(length=255),
                          nullable=True))
    op.add_column(
        'user',
        db.Column('password_scheme', db.String(length=50), nullable=False))

    # Temporary column needed for data migration
    op.add_column('user', db.Column('new_password', db.String(length=255)))

    # Migrate emails to password_salt
    m = db.MetaData(bind=db.engine)
    m.reflect()
    u = m.tables['user']

    conn = db.engine.connect()
    conn.execute(
        u.update().values(password_salt=u.c.email,
                          password_scheme='invenio_aes_encrypted_email'))

    # Migrate password blob to password varchar.
    for row in conn.execute(select([u])):
        # NOTE: Empty string passwords were stored as empty strings
        # instead of a hashed version, hence they must be treated differently.
        legacy_pw = row[u.c.password] or mysql_aes_encrypt(row[u.c.email], "")

        stmt = u.update().where(u.c.id == row[u.c.id]).values(
            new_password=hashlib.sha256(legacy_pw).hexdigest())
        conn.execute(stmt)

    # Create index
    op.create_index(op.f('ix_user_password_scheme'),
                    'user', ['password_scheme'],
                    unique=False)

    # Drop old database column and rename new.
    op.drop_column('user', 'password')
    op.alter_column(
        'user',
        'new_password',
        new_column_name='password',
        existing_type=mysql.VARCHAR(255),
        existing_nullable=True,
    )
Пример #7
0
def do_upgrade():
    op.create_table('accreqREQUEST',
                    db.Column('id',
                              db.Integer(display_width=15),
                              nullable=False),
                    db.Column('status', db.String(length=1), nullable=False),
                    db.Column('receiver_user_id',
                              db.Integer(display_width=15),
                              nullable=False),
                    db.Column('sender_user_id',
                              db.Integer(display_width=15),
                              nullable=True),
                    db.Column('sender_full_name',
                              db.String(length=255),
                              nullable=False),
                    db.Column('sender_email',
                              db.String(length=255),
                              nullable=False),
                    db.Column('recid',
                              db.Integer(display_width=15),
                              nullable=False),
                    db.Column('created', db.DateTime(), nullable=False),
                    db.Column('modified', db.DateTime(), nullable=False),
                    db.Column('justification', db.Text(), nullable=False),
                    db.Column('message', db.Text(), nullable=False),
                    db.Column('link_id',
                              db.Integer(display_width=15),
                              nullable=True),
                    db.ForeignKeyConstraint(
                        ['receiver_user_id'],
                        [u'user.id'],
                    ),
                    db.ForeignKeyConstraint(
                        ['sender_user_id'],
                        [u'user.id'],
                    ),
                    db.ForeignKeyConstraint(
                        ['link_id'],
                        [u'accreqLINK.id'],
                    ),
                    db.PrimaryKeyConstraint('id'),
                    mysql_charset='utf8',
                    mysql_engine='MyISAM')
    op.create_index(op.f('ix_accreqREQUEST_created'),
                    'accreqREQUEST', ['created'],
                    unique=False)
    op.create_index(op.f('ix_accreqREQUEST_recid'),
                    'accreqREQUEST', ['recid'],
                    unique=False)
    op.create_index(op.f('ix_accreqREQUEST_status'),
                    'accreqREQUEST', ['status'],
                    unique=False)

    op.create_table('accreqLINK',
                    db.Column('id',
                              db.Integer(display_width=15),
                              nullable=False),
                    db.Column('token', db.Text(), nullable=False),
                    db.Column('owner_user_id',
                              db.Integer(display_width=15),
                              nullable=False),
                    db.Column('created', db.DateTime(), nullable=False),
                    db.Column('expires_at', db.DateTime(), nullable=True),
                    db.Column('revoked_at', db.DateTime(), nullable=True),
                    db.Column('title', db.String(length=255), nullable=False),
                    db.Column('description', db.Text(), nullable=False),
                    db.ForeignKeyConstraint(
                        ['owner_user_id'],
                        [u'user.id'],
                    ),
                    db.PrimaryKeyConstraint('id'),
                    mysql_charset='utf8',
                    mysql_engine='MyISAM')
    op.create_index(op.f('ix_accreqLINK_created'),
                    'accreqLINK', ['created'],
                    unique=False)
    op.create_index(op.f('ix_accreqLINK_revoked_at'),
                    'accreqLINK', ['revoked_at'],
                    unique=False)