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.0080_quota_tables

"""
Migration script to create tables for disk quotas.
"""

import datetime
import logging

from sqlalchemy import BigInteger, Boolean, Column, DateTime, ForeignKey, Integer, MetaData, String, Table, TEXT

now = datetime.datetime.utcnow
log = logging.getLogger(__name__)
metadata = MetaData()

# Tables to add

Quota_table = Table("quota", metadata,
                    Column("id", Integer, primary_key=True),
                    Column("create_time", DateTime, default=now),
                    Column("update_time", DateTime, default=now, onupdate=now),
                    Column("name", String(255), index=True, unique=True),
                    Column("description", TEXT),
                    Column("bytes", BigInteger),
                    Column("operation", String(8)),
                    Column("deleted", Boolean, index=True, default=False))

UserQuotaAssociation_table = Table("user_quota_association", metadata,
                                   Column("id", Integer, primary_key=True),
                                   Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True),
                                   Column("quota_id", Integer, ForeignKey("quota.id"), index=True),
                                   Column("create_time", DateTime, default=now),
                                   Column("update_time", DateTime, default=now, onupdate=now))

GroupQuotaAssociation_table = Table("group_quota_association", metadata,
                                    Column("id", Integer, primary_key=True),
                                    Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True),
                                    Column("quota_id", Integer, ForeignKey("quota.id"), index=True),
                                    Column("create_time", DateTime, default=now),
                                    Column("update_time", DateTime, default=now, onupdate=now))

DefaultQuotaAssociation_table = Table("default_quota_association", metadata,
                                      Column("id", Integer, primary_key=True),
                                      Column("create_time", DateTime, default=now),
                                      Column("update_time", DateTime, default=now, onupdate=now),
                                      Column("type", String(32), index=True, unique=True),
                                      Column("quota_id", Integer, ForeignKey("quota.id"), index=True))


[docs]def upgrade(migrate_engine): metadata.bind = migrate_engine print(__doc__) metadata.reflect() # Create quota table try: Quota_table.create() except Exception: log.exception("Creating quota table failed.") # Create user_quota_association table try: UserQuotaAssociation_table.create() except Exception: log.exception("Creating user_quota_association table failed.") # Create group_quota_association table try: GroupQuotaAssociation_table.create() except Exception: log.exception("Creating group_quota_association table failed.") # Create default_quota_association table try: DefaultQuotaAssociation_table.create() except Exception: log.exception("Creating default_quota_association table failed.")
[docs]def downgrade(migrate_engine): metadata.bind = migrate_engine metadata.reflect() # Drop default_quota_association table try: DefaultQuotaAssociation_table.drop() except Exception: log.exception("Dropping default_quota_association table failed.") # Drop group_quota_association table try: GroupQuotaAssociation_table.drop() except Exception: log.exception("Dropping group_quota_association table failed.") # Drop user_quota_association table try: UserQuotaAssociation_table.drop() except Exception: log.exception("Dropping user_quota_association table failed.") # Drop quota table try: Quota_table.drop() except Exception: log.exception("Dropping quota table failed.")