root/galaxy-central/lib/galaxy/model/migrate/versions/0051_imported_col_for_jobs_table.py @ 2

リビジョン 2, 1.5 KB (コミッタ: hatakeyama, 14 年 前)

import galaxy-central

行番号 
1"""
2Migration script to add imported column for jobs table.
3"""
4
5from sqlalchemy import *
6from sqlalchemy.orm import *
7from migrate import *
8from migrate.changeset import *
9
10import logging
11log = logging.getLogger( __name__ )
12
13metadata = MetaData( migrate_engine )
14db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
15
16def upgrade():
17        print __doc__
18        metadata.reflect()
19
20        # Create and initialize imported column in job table.
21        Jobs_table = Table( "job", metadata, autoload=True )
22        c = Column( "imported", Boolean, default=False, index=True )
23        try:
24            # Create
25            c.create( Jobs_table )
26            assert c is Jobs_table.c.imported
27           
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 job SET imported=%s" % default_false )
34           
35        except Exception, e:
36            print "Adding imported column to job table failed: %s" % str( e )
37            log.debug( "Adding imported column to job table failed: %s" % str( e ) )
38   
39def downgrade():
40        metadata.reflect()
41
42        # Drop imported column from job table.
43        Jobs_table = Table( "job", metadata, autoload=True )
44        try:
45            Jobs_table.c.imported.drop()
46        except Exception, e:
47            print "Dropping column imported from job table failed: %s" % str( e )
48            log.debug( "Dropping column imported from job table failed: %s" % str( e ) )
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。