/lib/galaxy/webapps/community/model/migrate/versions/0003_review_and_review_association_tables.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 51 lines · 39 code · 6 blank · 6 comment · 4 complexity · 9271890b52cb9dbe948605b7fc30faf6 MD5 · raw file

  1. """
  2. Adds the tool_rating_association table, enabling tools to be rated along with review comments.
  3. """
  4. from sqlalchemy import *
  5. from sqlalchemy.orm import *
  6. from sqlalchemy.exc import *
  7. from migrate import *
  8. from migrate.changeset import *
  9. import datetime
  10. now = datetime.datetime.utcnow
  11. import sys, logging
  12. log = logging.getLogger( __name__ )
  13. log.setLevel(logging.DEBUG)
  14. handler = logging.StreamHandler( sys.stdout )
  15. format = "%(name)s %(levelname)s %(asctime)s %(message)s"
  16. formatter = logging.Formatter( format )
  17. handler.setFormatter( formatter )
  18. log.addHandler( handler )
  19. # Need our custom types, but don't import anything else from model
  20. from galaxy.model.custom_types import *
  21. metadata = MetaData( migrate_engine )
  22. db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
  23. ToolRatingAssociation_table = Table( "tool_rating_association", metadata,
  24. Column( "id", Integer, primary_key=True ),
  25. Column( "create_time", DateTime, default=now ),
  26. Column( "update_time", DateTime, default=now, onupdate=now ),
  27. Column( "tool_id", Integer, ForeignKey( "tool.id" ), index=True ),
  28. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  29. Column( "rating", Integer, index=True ),
  30. Column( "comment", TEXT ) )
  31. def upgrade():
  32. print __doc__
  33. # Load existing tables
  34. metadata.reflect()
  35. try:
  36. ToolRatingAssociation_table.create()
  37. except Exception, e:
  38. log.debug( "Creating tool_rating_association table failed: %s" % str( e ) )
  39. def downgrade():
  40. # Load existing tables
  41. metadata.reflect()
  42. try:
  43. ToolRatingAssociation_table.drop()
  44. except Exception, e:
  45. log.debug( "Dropping tool_rating_association table failed: %s" % str( e ) )