Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.model.migrate.versions.0117_add_user_activation

"""
Adds 'active' and 'activation_token' columns to the galaxy_user table.
"""

import logging

from sqlalchemy import Boolean, Column, MetaData, Table

from galaxy.model.custom_types import TrimmedString

log = logging.getLogger(__name__)
user_active_column = Column("active", Boolean, default=True, nullable=True)
user_activation_token_column = Column("activation_token", TrimmedString(64), nullable=True)


[docs]def upgrade(migrate_engine): print(__doc__) metadata = MetaData() metadata.bind = migrate_engine metadata.reflect() # Add the active and activation_token columns to the user table in one try because the depend on each other. try: user_table = Table("galaxy_user", metadata, autoload=True) user_activation_token_column.create(table=user_table) assert user_activation_token_column is user_table.c.activation_token user_active_column.create(table=user_table, populate_default=True) assert user_active_column is user_table.c.active except Exception: log.exception("Adding columns 'active' and 'activation_token' to galaxy_user table failed.")
[docs]def downgrade(migrate_engine): metadata = MetaData() metadata.bind = migrate_engine metadata.reflect() # Drop the user table's active and activation_token columns in one try because the depend on each other. try: user_table = Table("galaxy_user", metadata, autoload=True) # SQLAlchemy Migrate has a bug when dropping a boolean column in SQLite if migrate_engine.name != 'sqlite': user_active = user_table.c.active user_active.drop() user_activation_token = user_table.c.activation_token user_activation_token.drop() except Exception: log.exception("Dropping 'active' and 'activation_token' columns from galaxy_user table failed.")