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)
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(): """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(): 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)