/lib/galaxy/model/migrate/versions/0061_tasks.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 50 lines · 40 code · 7 blank · 3 comment · 3 complexity · c89a85668187840a6a4de289b20dddf2 MD5 · raw file

  1. """
  2. Migration script to create tables task management.
  3. """
  4. from sqlalchemy import *
  5. from sqlalchemy.orm import *
  6. from migrate import *
  7. from migrate.changeset import *
  8. import datetime
  9. import logging
  10. log = logging.getLogger( __name__ )
  11. metadata = MetaData()
  12. now = datetime.datetime.utcnow
  13. Task_table = Table( "task", metadata,
  14. Column( "id", Integer, primary_key=True ),
  15. Column( "create_time", DateTime, default=now ),
  16. Column( "execution_time", DateTime ),
  17. Column( "update_time", DateTime, default=now, onupdate=now ),
  18. Column( "state", String( 64 ), index=True ),
  19. Column( "command_line", TEXT ),
  20. Column( "param_filename", String( 1024 ) ),
  21. Column( "runner_name", String( 255 ) ),
  22. Column( "stdout", TEXT ),
  23. Column( "stderr", TEXT ),
  24. Column( "traceback", TEXT ),
  25. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=False ),
  26. Column( "part_file", String(1024)),
  27. Column( "task_runner_name", String( 255 ) ),
  28. Column( "task_runner_external_id", String( 255 ) ) )
  29. tables = [Task_table]
  30. def upgrade(migrate_engine):
  31. metadata.bind = migrate_engine
  32. print __doc__
  33. metadata.reflect()
  34. for table in tables:
  35. try:
  36. table.create()
  37. except:
  38. log.warn( "Failed to create table '%s', ignoring (might result in wrong schema)" % table.name )
  39. def downgrade(migrate_engine):
  40. metadata.bind = migrate_engine
  41. metadata.reflect()
  42. for table in tables:
  43. table.drop()