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.")