예제 #1
0
        'polymorphic_on': type,
        'with_polymorphic': '*',
        '_polymorphic_map': TopicPolymorphicMap()
    }


# noinspection PyUnusedLocal
def upgrade(engine, operations_factory):
    if not engine.dialect.has_table(engine.connect(), Topic.__tablename__):
        return
    version = get_current_version(engine)
    if version == 0:
        with operations_factory() as operations:
            quality_column = Column('status',
                                    String(8),
                                    nullable=False,
                                    server_default=Status.Ok.__str__())
            operations.add_column(Topic.__tablename__, quality_column)
        version = 1


def get_current_version(engine):
    m = MetaData(engine)
    topics = Table(Topic.__tablename__, m, autoload=True)
    if 'status' not in topics.columns:
        return 0
    return 1


add_upgrade(upgrade)
예제 #2
0
    __mapper_args__ = {
        'polymorphic_identity': 'topic',
        'polymorphic_on': type,
        'with_polymorphic': '*',
        '_polymorphic_map': TopicPolymorphicMap()
    }


# noinspection PyUnusedLocal
def upgrade(engine, operations_factory):
    if not engine.dialect.has_table(engine.connect(), Topic.__tablename__):
        return
    version = get_current_version(engine)
    if version == 0:
        with operations_factory() as operations:
            quality_column = Column('status', String(8), nullable=False, server_default=Status.Ok.__str__())
            operations.add_column(Topic.__tablename__, quality_column)
        version = 1


def get_current_version(engine):
    m = MetaData(engine)
    topics = Table(Topic.__tablename__, m, autoload=True)
    if 'status' not in topics.columns:
        return 0
    return 1


add_upgrade(upgrade)
예제 #3
0
def register_plugin(type, name, instance, upgrade=None):
    if not upgrade:
        upgrade = getattr(instance, 'upgrade', None)
    if upgrade:
        add_upgrade(upgrade)
    plugins.setdefault(type, dict())[name] = instance
예제 #4
0
def register_plugin(type, name, instance, upgrade=None):
    if not upgrade:
        upgrade = getattr(instance, 'upgrade', None)
    if upgrade:
        add_upgrade(upgrade)
    plugins.setdefault(type, dict())[name] = instance