当前位置: 首页>>代码示例>>Python>>正文


Python op.batch_alter_table方法代码示例

本文整理汇总了Python中alembic.op.batch_alter_table方法的典型用法代码示例。如果您正苦于以下问题:Python op.batch_alter_table方法的具体用法?Python op.batch_alter_table怎么用?Python op.batch_alter_table使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在alembic.op的用法示例。


在下文中一共展示了op.batch_alter_table方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    op.add_column('watchers', sa.Column('watch_commits', sa.Boolean(),
                                        nullable=True))
    op.add_column('watchers', sa.Column('watch_issues', sa.Boolean(),
                                        nullable=True))
    # This section is to update the `watch_issues` and `watch_commits` columns
    # with the value of `watch`
    connection = op.get_bind()
    for watcher in connection.execute(watcher_helper.select()):
        connection.execute(
            watcher_helper.update().where(
                watcher_helper.c.id == watcher.id
            ).values(
                watch_issues=watcher.watch,
                watch_commits=False
            )
        )

    with op.batch_alter_table('watchers') as b:
        # Set nullable to False now that we've set values
        b.alter_column('watch_issues', nullable=False)
        b.alter_column('watch_commits', nullable=False)
        # Remove the watch column
        b.drop_column('watch') 
开发者ID:Pagure,项目名称:pagure,代码行数:26,代码来源:d4d2c5aa8a0_add_granularity_to_watching_repos.py

示例2: downgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def downgrade():
    op.add_column('watchers', sa.Column('watch', sa.BOOLEAN(), nullable=True))

    # This section is to update the `watch` column with the value of
    # `watch_issues`
    connection = op.get_bind()
    for watcher in connection.execute(watcher_helper.select()):
        connection.execute(
            watcher_helper.update().where(
                watcher_helper.c.id == watcher.id
            ).values(
                watch=watcher.watch_issues
            )
        )

    with op.batch_alter_table('watchers') as b:
        # Set nullable to False now that we've set values
        b.alter_column('watch', nullable=False)
        # Drop the added columns
        b.drop_column('watch_issues')
        b.drop_column('watch_commits') 
开发者ID:Pagure,项目名称:pagure,代码行数:23,代码来源:d4d2c5aa8a0_add_granularity_to_watching_repos.py

示例3: downgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def downgrade():
    op.drop_table("download")
    op.drop_table("build_architecture")
    op.drop_table("displayname")
    op.drop_table("description")
    op.drop_table("icon")
    sa.Enum(name="icon_size").drop(op.get_bind(), checkfirst=False)
    op.drop_table("build")
    op.drop_table("version_service_dependency")
    op.drop_table("package_user_maintainer")
    with op.batch_alter_table("version", schema=None) as batch_op:
        batch_op.drop_index(batch_op.f("ix_version_version"))
    op.drop_table("version")
    op.drop_table("screenshot")
    op.drop_table("user_role")
    op.drop_table("package")
    op.drop_table("service")
    op.drop_table("firmware")
    op.drop_table("language")
    op.drop_table("architecture")
    op.drop_table("role")
    op.drop_table("user") 
开发者ID:SynoCommunity,项目名称:spkrepo,代码行数:24,代码来源:26b4c36c11e_create_database.py

示例4: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    try:
        with op.batch_alter_table("smsgatewayoption") as batch_op:
            batch_op.drop_constraint('sgix_1', type_='unique')
            batch_op.create_unique_constraint('sgix_1', ['gateway_id', 'Key', 'Type'])
    except Exception as exx:
        print("Cannot change constraint 'sgix_1' in table smsgatewayoption.")
        print(exx)

    try:
        bind = op.get_bind()
        session = orm.Session(bind=bind)
        # add default type 'option' for all rows
        for row in session.query(SMSGatewayOption):
            if not row.Type:
                row.Type = "option"

    except Exception as exx:
        session.rollback()
        print("Failed to add option type for all existing entries in table smsgatewayoption!")
        print(exx)

    session.commit() 
开发者ID:privacyidea,项目名称:privacyidea,代码行数:25,代码来源:e360c56bcf8c_.py

示例5: drop_constraint

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def drop_constraint(operator, constraint_dict):
    """
    Drop a primary key or unique constraint

    :param operator: batch_alter_table for the table
    :param constraint_dict: a dictionary of ((constraint name, constraint type), column name) of table
    """
    for constraint, columns in constraint_dict.items():
        if 'execution_date' in columns:
            if constraint[1].lower().startswith("primary"):
                operator.drop_constraint(
                    constraint[0],
                    type_='primary'
                )
            elif constraint[1].lower().startswith("unique"):
                operator.drop_constraint(
                    constraint[0],
                    type_='unique'
                ) 
开发者ID:apache,项目名称:airflow,代码行数:21,代码来源:74effc47d867_change_datetime_to_datetime2_6_on_mssql_.py

示例6: create_constraint

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def create_constraint(operator, constraint_dict):
    """
    Create a primary key or unique constraint

    :param operator: batch_alter_table for the table
    :param constraint_dict: a dictionary of ((constraint name, constraint type), column name) of table
    """
    for constraint, columns in constraint_dict.items():
        if 'execution_date' in columns:
            if constraint[1].lower().startswith("primary"):
                operator.create_primary_key(
                    constraint_name=constraint[0],
                    columns=reorder_columns(columns)
                )
            elif constraint[1].lower().startswith("unique"):
                operator.create_unique_constraint(
                    constraint_name=constraint[0],
                    columns=reorder_columns(columns)
                ) 
开发者ID:apache,项目名称:airflow,代码行数:21,代码来源:74effc47d867_change_datetime_to_datetime2_6_on_mssql_.py

示例7: modify_execution_date_with_constraint

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def modify_execution_date_with_constraint(conn, batch_operator, table_name, type_, nullable):
    """
    Helper function changes type of column execution_date by
    dropping and recreating any primary/unique constraint associated with
    the column

    :param conn: sql connection object
    :param batch_operator: batch_alter_table for the table
    :param table_name: table name
    :param type_: DB column type
    :param nullable: nullable (boolean)
    :return: a dictionary of ((constraint name, constraint type), column name) of table
    :rtype: defaultdict(list)
    """
    constraint_dict = get_table_constraints(conn, table_name)
    drop_constraint(batch_operator, constraint_dict)
    batch_operator.alter_column(
        column_name="execution_date",
        type_=type_,
        nullable=nullable,
    )
    create_constraint(batch_operator, constraint_dict) 
开发者ID:apache,项目名称:airflow,代码行数:24,代码来源:74effc47d867_change_datetime_to_datetime2_6_on_mssql_.py

示例8: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    """
    Make TaskInstance.pool field not nullable.
    """
    with create_session() as session:
        session.query(TaskInstance) \
            .filter(TaskInstance.pool.is_(None)) \
            .update({TaskInstance.pool: 'default_pool'},
                    synchronize_session=False)  # Avoid select updated rows
        session.commit()

    conn = op.get_bind()
    if conn.dialect.name == "mssql":
        op.drop_index('ti_pool', table_name='task_instance')

    # use batch_alter_table to support SQLite workaround
    with op.batch_alter_table('task_instance') as batch_op:
        batch_op.alter_column(
            column_name='pool',
            type_=sa.String(50),
            nullable=False,
        )

    if conn.dialect.name == "mssql":
        op.create_index('ti_pool', 'task_instance', ['pool', 'state', 'priority_weight']) 
开发者ID:apache,项目名称:airflow,代码行数:27,代码来源:6e96a59344a4_make_taskinstance_pool_not_nullable.py

示例9: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    """Apply Set conn_type as non-nullable"""

    Base = declarative_base()

    class Connection(Base):
        __tablename__ = "connection"

        id = sa.Column(sa.Integer(), primary_key=True)
        conn_id = sa.Column(sa.String(250))
        conn_type = sa.Column(sa.String(500))

    # Generate run type for existing records
    connection = op.get_bind()
    sessionmaker = sa.orm.sessionmaker()
    session = sessionmaker(bind=connection)

    # imap_default was missing it's type, let's fix that up
    session.query(Connection).filter_by(conn_id="imap_default", conn_type=None).update(
        {Connection.conn_type: "imap"}, synchronize_session=False
    )
    session.commit()

    with op.batch_alter_table("connection", schema=None) as batch_op:
        batch_op.alter_column("conn_type", existing_type=sa.VARCHAR(length=500), nullable=False) 
开发者ID:apache,项目名称:airflow,代码行数:27,代码来源:8f966b9c467a_set_conn_type_as_non_nullable.py

示例10: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    # first, find and merge duplicates
    # then, set unique index
    bind = op.get_bind()
    select = sa.text('select email from "user" where email is not null group by email having count(*) > 1')
    for email in bind.execute(select):
        same_users = bind.execute(users.select().where(users.c.email == email[0]).order_by('registration_date')).fetchall()
        kept_user = same_users.pop()
        for obsolete_user in same_users:
            merge_users(bind, obsolete_user, kept_user)
            bind.execute(users.delete().where(
                and_(
                    users.c.username == obsolete_user.username,
                    users.c.source == obsolete_user.source)))
    # phantom users, lost forever...
    bind.execute(users.update().where(users.c.email == None).values(email_to_confirm=None))
    with op.batch_alter_table('user', schema=None) as batch_op:
        batch_op.create_index(batch_op.f('ix_email'), ['email'], unique=True)
        batch_op.create_index(batch_op.f('ix_email_to_confirm'), ['email_to_confirm'], unique=True) 
开发者ID:Net-ng,项目名称:kansha,代码行数:21,代码来源:55f89221fc55_email_index.py

示例11: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    connection = op.get_bind()
    if connection.engine.name != 'sqlite':
        return
    
    with op.batch_alter_table('user') as batch_op:
        batch_op.add_column(sa.Column('_password',
               sqlalchemy_utils.types.password.PasswordType(max_length=128),
               server_default='',
               nullable=False
            ))
    
    connection.execute(
            UserHelper.update().values(_password=UserHelper.c.password)
        )
    
    with op.batch_alter_table('user') as batch_op:
        batch_op.drop_column('password')
        batch_op.alter_column('_password', server_default=None, new_column_name='password') 
开发者ID:frol,项目名称:flask-restplus-server-example,代码行数:21,代码来源:beb065460c24_fixed-password-type.py

示例12: downgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def downgrade():
    connection = op.get_bind()
    if connection.engine.name != 'sqlite':
        return
    
    with op.batch_alter_table('user') as batch_op:
        batch_op.add_column(sa.Column('_password',
               type_=sa.NUMERIC(precision=128),
               server_default='',
               nullable=False
            ))
    
    connection.execute(
            UserHelper.update().values(_password=UserHelper.c.password)
        )
    
    with op.batch_alter_table('user') as batch_op:
        batch_op.drop_column('password')
        batch_op.alter_column('_password', server_default=None, new_column_name='password') 
开发者ID:frol,项目名称:flask-restplus-server-example,代码行数:21,代码来源:beb065460c24_fixed-password-type.py

示例13: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.add_column('user', sa.Column('created', sa.DateTime(), nullable=True))
    op.add_column('user', sa.Column('updated', sa.DateTime(), nullable=True))
    with op.batch_alter_table('user') as batch_op:
        batch_op.alter_column('password',
               existing_type=sa.VARCHAR(length=128),
               type_=sqlalchemy_utils.types.password.PasswordType(max_length=128),
               existing_nullable=False,
               postgresql_using='password::bytea')
    ### end Alembic commands ###

    user = sa.Table('user',
        sa.MetaData(),
        sa.Column('created', sa.DateTime()),
        sa.Column('updated', sa.DateTime()),
    )

    op.execute(
        user.update().values({'created': datetime.now(), 'updated': datetime.now()})
    ) 
开发者ID:frol,项目名称:flask-restplus-server-example,代码行数:23,代码来源:36954739c63_.py

示例14: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    with op.batch_alter_table('compute_node', schema=None) as batch_op:
        batch_op.add_column(sa.Column('disk_total',
                                      sa.Integer(), nullable=False))
        batch_op.add_column(sa.Column('disk_used',
                                      sa.Integer(), nullable=False)) 
开发者ID:openstack,项目名称:zun,代码行数:8,代码来源:d0c606fdec3c_add_disk_info_to_compute_node.py

示例15: upgrade

# 需要导入模块: from alembic import op [as 别名]
# 或者: from alembic.op import batch_alter_table [as 别名]
def upgrade():
    with op.batch_alter_table('container', schema=None) as batch_op:
        batch_op.add_column(sa.Column('interactive', sa.Boolean(),
                                      nullable=True))
        batch_op.drop_column('tty')
        batch_op.drop_column('stdin_open') 
开发者ID:openstack,项目名称:zun,代码行数:8,代码来源:ce9944b346cb_combine_tty_and_stdin_open.py


注:本文中的alembic.op.batch_alter_table方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。