/lib/galaxy/model/migrate/versions/0078_add_columns_for_disk_usage_accounting.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 88 lines · 87 code · 0 blank · 1 comment · 0 complexity · a1f7f3a64f603db4aca4be1b1642f14e MD5 · raw file

  1. """
  2. Migration script to add 'total_size' column to the dataset table, 'purged'
  3. column to the HDA table, and 'disk_usage' column to the User and GalaxySession
  4. tables.
  5. """
  6. from sqlalchemy import *
  7. from sqlalchemy.orm import *
  8. from migrate import *
  9. from migrate.changeset import *
  10. import logging
  11. log = logging.getLogger( __name__ )
  12. metadata = MetaData()
  13. def upgrade(migrate_engine):
  14. metadata.bind = migrate_engine
  15. print __doc__
  16. metadata.reflect()
  17. try:
  18. Dataset_table = Table( "dataset", metadata, autoload=True )
  19. c = Column( 'total_size', Numeric( 15, 0 ) )
  20. c.create( Dataset_table )
  21. assert c is Dataset_table.c.total_size
  22. except Exception, e:
  23. print "Adding total_size column to dataset table failed: %s" % str( e )
  24. log.debug( "Adding total_size column to dataset table failed: %s" % str( e ) )
  25. try:
  26. HistoryDatasetAssociation_table = Table( "history_dataset_association", metadata, autoload=True )
  27. c = Column( "purged", Boolean, index=True, default=False )
  28. c.create( HistoryDatasetAssociation_table, index_name="ix_history_dataset_association_purged")
  29. assert c is HistoryDatasetAssociation_table.c.purged
  30. migrate_engine.execute(HistoryDatasetAssociation_table.update().values(purged=False))
  31. except Exception, e:
  32. print "Adding purged column to history_dataset_association table failed: %s" % str( e )
  33. log.debug( "Adding purged column to history_dataset_association table failed: %s" % str( e ) )
  34. try:
  35. User_table = Table( "galaxy_user", metadata, autoload=True )
  36. c = Column( 'disk_usage', Numeric( 15, 0 ), index=True )
  37. c.create( User_table, index_name="ix_galaxy_user_disk_usage")
  38. assert c is User_table.c.disk_usage
  39. except Exception, e:
  40. print "Adding disk_usage column to galaxy_user table failed: %s" % str( e )
  41. log.debug( "Adding disk_usage column to galaxy_user table failed: %s" % str( e ) )
  42. try:
  43. GalaxySession_table = Table( "galaxy_session", metadata, autoload=True )
  44. c = Column( 'disk_usage', Numeric( 15, 0 ), index=True )
  45. c.create( GalaxySession_table, index_name="ix_galaxy_session_disk_usage")
  46. assert c is GalaxySession_table.c.disk_usage
  47. except Exception, e:
  48. print "Adding disk_usage column to galaxy_session table failed: %s" % str( e )
  49. log.debug( "Adding disk_usage column to galaxy_session table failed: %s" % str( e ) )
  50. def downgrade(migrate_engine):
  51. metadata.bind = migrate_engine
  52. metadata.reflect()
  53. try:
  54. Dataset_table = Table( "dataset", metadata, autoload=True )
  55. Dataset_table.c.total_size.drop()
  56. except Exception, e:
  57. print "Dropping total_size column from dataset table failed: %s" % str( e )
  58. log.debug( "Dropping total_size column from dataset table failed: %s" % str( e ) )
  59. try:
  60. HistoryDatasetAssociation_table = Table( "history_dataset_association", metadata, autoload=True )
  61. HistoryDatasetAssociation_table.c.purged.drop()
  62. except Exception, e:
  63. print "Dropping purged column from history_dataset_association table failed: %s" % str( e )
  64. log.debug( "Dropping purged column from history_dataset_association table failed: %s" % str( e ) )
  65. try:
  66. User_table = Table( "galaxy_user", metadata, autoload=True )
  67. User_table.c.disk_usage.drop()
  68. except Exception, e:
  69. print "Dropping disk_usage column from galaxy_user table failed: %s" % str( e )
  70. log.debug( "Dropping disk_usage column from galaxy_user table failed: %s" % str( e ) )
  71. try:
  72. GalaxySession_table = Table( "galaxy_session", metadata, autoload=True )
  73. GalaxySession_table.c.disk_usage.drop()
  74. except Exception, e:
  75. print "Dropping disk_usage column from galaxy_session table failed: %s" % str( e )
  76. log.debug( "Dropping disk_usage column from galaxy_session table failed: %s" % str( e ) )