/lib/galaxy/webapps/community/model/migrate/versions/0002_add_tool_suite_column.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 50 lines · 38 code · 5 blank · 7 comment · 7 complexity · fcdb2223816645adace045540c1bff80 MD5 · raw file

  1. """
  2. Migration script to add the suite column to the tool table.
  3. """
  4. from sqlalchemy import *
  5. from sqlalchemy.orm import *
  6. from migrate import *
  7. from migrate.changeset import *
  8. import sys, logging
  9. log = logging.getLogger( __name__ )
  10. log.setLevel(logging.DEBUG)
  11. handler = logging.StreamHandler( sys.stdout )
  12. format = "%(name)s %(levelname)s %(asctime)s %(message)s"
  13. formatter = logging.Formatter( format )
  14. handler.setFormatter( formatter )
  15. log.addHandler( handler )
  16. metadata = MetaData( migrate_engine )
  17. db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
  18. def upgrade():
  19. print __doc__
  20. metadata.reflect()
  21. # Create and initialize imported column in job table.
  22. Tool_table = Table( "tool", metadata, autoload=True )
  23. c = Column( "suite", Boolean, default=False, index=True )
  24. try:
  25. # Create
  26. c.create( Tool_table )
  27. assert c is Tool_table.c.suite
  28. # Initialize.
  29. if migrate_engine.name == 'mysql' or migrate_engine.name == 'sqlite':
  30. default_false = "0"
  31. elif migrate_engine.name == 'postgres':
  32. default_false = "false"
  33. db_session.execute( "UPDATE tool SET suite=%s" % default_false )
  34. except Exception, e:
  35. print "Adding suite column to the tool table failed: %s" % str( e )
  36. log.debug( "Adding suite column to the tool table failed: %s" % str( e ) )
  37. def downgrade():
  38. metadata.reflect()
  39. # Drop suite column from tool table.
  40. Tool_table = Table( "tool", metadata, autoload=True )
  41. try:
  42. Tool_table.c.suite.drop()
  43. except Exception, e:
  44. print "Dropping column suite from the tool table failed: %s" % str( e )
  45. log.debug( "Dropping column suite from the tool table failed: %s" % str( e ) )