Пример #1
0
    def change_task(self):
        # Task in elixir did not generate a row_type for use as discriminator
        self.schedule('alter', op.add_column, 'task',
                      Column('row_type', String(40)))

        # Task in elixir's queue_id was NULLABLE, but should not be (Tasks HAVE to be in a Queue now)
        self.schedule('alter',
                      op.alter_column,
                      'task',
                      'queue_id',
                      nullable=True)

        # Rename of relationship foreign key Task.reserved_by_id -> reserved_by_party_id
        old_name = 'reserved_by_id'
        new_name = 'reserved_by_party_id'
        self.schedule('drop_fk', op.drop_constraint,
                      '%s_%s_fk' % ('task', old_name), 'task')
        self.schedule('alter',
                      op.alter_column,
                      'task',
                      old_name,
                      new_column_name=new_name)
        self.schedule('create_fk', op.create_foreign_key,
                      fk_name('task', new_name, 'party'), 'task', 'party',
                      [new_name], ['id'])

        self.schedule('drop_pk', op.drop_index,
                      ix_name('task', 'reserved_by_id'))
        self.schedule('indexes', op.create_index,
                      ix_name('task', 'reserved_by_party_id'), 'task',
                      ['reserved_by_party_id'])
Пример #2
0
 def schedule_upgrades(self):
     self.schedule('alter', op.create_table, 'loginsession', 
                   Column('id', Integer(), primary_key=True, nullable=False),
                   Column('row_type', String(length=40)),
                   Column('account_id', Integer(), ForeignKey('systemaccount.id')), 
                   Column('user_session_id', Integer(), ForeignKey('usersession.id')))
     self.schedule('indexes', op.create_index, ix_name('loginsession', 'account_id'), 'loginsession', ['account_id'])
     self.schedule('indexes', op.create_index, ix_name('loginsession', 'user_session_id'), 'loginsession', ['user_session_id'])
Пример #3
0
 def schedule_upgrades(self):
     self.orm_control.assert_dialect(self, 'postgresql')
     self.schedule('alter', op.create_table, 'loginsession', 
                   Column('id', Integer(), primary_key=True, nullable=False),
                   Column('row_type', String(length=40)),
                   Column('account_id', Integer(), ForeignKey('systemaccount.id')), 
                   Column('user_session_id', Integer(), ForeignKey('usersession.id', ondelete='CASCADE')))
     self.schedule('indexes', op.create_index, ix_name('loginsession', 'account_id'), 'loginsession', ['account_id'])
     self.schedule('indexes', op.create_index, ix_name('loginsession', 'user_session_id'), 'loginsession', ['user_session_id'])
Пример #4
0
    def change_session_scoped(self, table_name):
        """Rename the old session_id relationship on @session_scoped things to user_session_id, and update
           the foreign keys and indexes accordingly.

           :arg table_name: The name of the table underlying the @session_scoped class.
        """
        old_name = 'session_id'
        new_name = 'user_session_id'
        self.schedule('drop_fk', op.drop_constraint, '%s_%s_fk' % (table_name, old_name), table_name)
        self.schedule('alter', op.alter_column, table_name, old_name, new_column_name=new_name)
        self.schedule('create_fk', op.create_foreign_key, fk_name(table_name, new_name, 'usersession'), table_name, 
                      'usersession', [new_name], ['id'], ondelete='CASCADE')
        self.schedule('drop_pk', op.drop_index, ix_name(table_name, old_name))
        self.schedule('indexes', op.create_index, ix_name(table_name, new_name), table_name, [new_name])
Пример #5
0
 def move_party_systemaccount_relationship(self):
     # A SystemAccount now points to its 'owner' (a Party) instead of Party which previously pointed to a SystemAccount
     # TODO?:Assert no rows for : select count(*) from party group by system_account_party_id having count(*) > 1;
     self.schedule('drop_fk', op.drop_constraint, 'party_system_account_id_fk', 'party')
     self.schedule('alter', op.add_column, 'systemaccount', Column('owner_party_id', Integer))
     migrate_data = 'UPDATE systemaccount SET owner_party_id = PARTY.id FROM PARTY WHERE PARTY.system_account_id = systemaccount.id'
     self.schedule('data', op.execute, migrate_data)
     self.schedule('cleanup', op.drop_column, 'party', 'system_account_id')
     self.schedule('create_fk', op.create_foreign_key, fk_name('systemaccount', 'owner_party_id', 'party'), 
                   'systemaccount', 'party', ['owner_party_id'], ['id'])
     self.schedule('drop_pk', op.drop_index, ix_name('party','system_account_id'))
Пример #6
0
    def schedule_upgrades(self):
        self.schedule('drop_pk', op.drop_index,
                      ix_name('usersession', 'account_id'))
        self.schedule('alter', op.drop_column, 'usersession', 'account_id')
        self.schedule('alter', op.add_column, 'usersession',
                      Column('salt', String(40), nullable=False))
        self.schedule('alter', op.add_column, 'usersession',
                      Column('secure_salt', String(40), nullable=False))
        self.schedule('alter', op.drop_table, 'webusersession')
        self.schedule('data', op.execute, 'delete from usersession')

        self.schedule(
            'drop_fk', op.drop_constraint,
            fk_name('sessiondata', 'web_session_id', 'webusersession'),
            'sessiondata')
        self.schedule('create_fk',
                      op.create_foreign_key,
                      fk_name('sessiondata', 'web_session_id', 'usersession'),
                      'sessiondata',
                      'usersession', ['web_session_id'], ['id'],
                      ondelete='CASCADE')