• alembic 实践操作


    1. alembic [--config */alembic.ini ] current

    2. alembic revision -m "add columns"

        编辑生产的模板文件,更新upgrade/downgrade

      如何编辑见后文。

    3. alembic upgrade head[or version]

    4. alembic downgrade -1

    5. 编写模板文件 修改upgrade downgrade

    revision = '...'
    down_revision = '...'
    
    from alembic import op
    import sqlalchemy as sa
    
    def upgrade():
        pass
    
    def downgrade():
        pass

    1)新建table

      op.create_table(
        'account',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('created_at', sa.DateTime(), nullable=True),
        sa.Column('updated_at', sa.DateTime(), nullable=True),
         sa.Column('nickname', sa.String(length=48), nullable=False),
         sa.Column('identityID', sa.String(length=255), nullable=False),
        sa.PrimaryKeyConstraint('id'),
        mysql_ENGINE='InnoDB',
        mysql_DEFAULT_CHARSET='UTF8'
      )
    
      op.create_unique_constraint(
        "uniq_account0identityID",
        "account", [identityID])
    or
      op.create_table(
        'account',
        ......
      sa.UniqueConstraint('identityID',
                 name='uniq_account0identityID')
        ......
      )

    2)新增column

      op.add_column('account',
               sa.Column('age', sa.Integer(), nullable=False))
    or   op.alter_column(
    'account', 'age',            new_column_name='sex', existing_type=sa.Integer())

    3)重命名table

      op.rename_table('account', 'tb_account')

    4)删除table

      op.drop_table('account')

    5)创建外键

      op.create_foreign_key(
              "fk_user_address", "address",
              "user", ["user_id"], ["id"])

    6)执行sql

        marital_status_column = sa.Column('maritalStatus', sa.Boolean(), default=False)
        op.add_column('account', marital_status_column)
        account = sa.sql.table('baymodel', marital_status_column)
        op.execute(
            account.update().values({'maritalStatus': True})
        ) 

    7)sqlalchemy主要types

    sa.Integer()
    sa.String(length=255)
    sa.DateTime()
    sa.Text() 
    sa.Boolean()
  • 相关阅读:
    图论基础
    排序二叉树的中序遍历
    先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列
    数据结构实验之 二叉树的建立与遍历
    c++ 头文件 及 sort 和 vector简单介绍
    最短路径(Floyd 模板题)
    最小生成树(kruskal模版 模板)
    基于邻接矩阵的广度优先搜索遍历(BFS)
    [SCOI2015]国旗计划
    [HNOI2015]开店
  • 原文地址:https://www.cnblogs.com/tangkaixin/p/6376692.html
Copyright © 2020-2023  润新知