zoukankan      html  css  js  c++  java
  • 如何在Alembic upgrade脚本中执行插入和更新数据库记录 [Flask] [Sqlalchemy] [Alembic] [python]

    1. 插入数据

    """empty message
    
    Revision ID: c15fcfd8e40a
    Revises: 35ca68348a8d
    Create Date: 2021-01-05 19:39:22.768992
    
    """
    from alembic import op
    import sqlalchemy as sa
    from sqlalchemy.sql import table, column
    
    # revision identifiers, used by Alembic.
    revision = 'c15fcfd8e40a'
    down_revision = '35ca68348a8d'
    branch_labels = None
    depends_on = None
    
    
    def upgrade():
        # ### commands auto generated by Alembic - please adjust! ###
        op.create_table(
            'users',
            sa.Column('id', sa.String(length=45), nullable=False),
            sa.Column('name', sa.String(length=100), nullable=False),
            sa.PrimaryKeyConstraint('id')
        )
    
        # insert records
        user_table = table(
            'users',
            column('id', sa.String),
            column('name', sa.String)
        )
        op.bulk_insert(
            user_table,
            [
                {
                    "id": "123",
                    "name": "Hello"
                },
                {
                    "id": "234",
                    "name": "World"
                },
            ]
        )
    
    
    def downgrade():
        # ### commands auto generated by Alembic - please adjust! ###
        op.drop_table('users')
        # ### end Alembic commands ###
    
    

    2. 更新数据库中的数据

    """empty message
    
    Revision ID: c15fcfd8e40a
    Revises: 35ca68348a8d
    Create Date: 2021-01-05 19:39:22.768992
    
    """
    from alembic import op
    import sqlalchemy as sa
    
    # revision identifiers, used by Alembic.
    revision = 'c15fcfd8e40a'
    down_revision = '35ca68348a8d'
    branch_labels = None
    depends_on = None
    
    
    def upgrade():
        # ### commands auto generated by Alembic - please adjust! ###
        op.create_table(
            'users',
            sa.Column('id', sa.String(length=45), nullable=False),
            sa.Column('name', sa.String(length=100), nullable=False),
            sa.Column('password', sa.String(length=150), nullable=False),
            sa.PrimaryKeyConstraint('id')
        )
        # update records
        bind = op.get_bind()
        for user in bind.execute('select id, name from users'):
            if user[1] is None:
                bind.execute("update users set name = %s where id = '%s'" % ("hello_world", user[0]))
        # ### end Alembic commands ###
    
    def downgrade():
        # ### commands auto generated by Alembic - please adjust! ###
        op.drop_table('users')
        # ### end Alembic commands ###
    
  • 相关阅读:
    mac下安装oracle客户端
    Mac下安装tomcat
    eclipse上Git使用
    深拷贝1兼容多构造函数
    Oracle查询表大小,更新或查询太慢的时候
    Redis弱密码修改
    学习参考
    c#简单类型转换As<T>
    NPM相关
    java项目和npm项目命令窗口部署方便调试
  • 原文地址:https://www.cnblogs.com/guohewei/p/14975029.html
Copyright © 2011-2022 走看看