zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    MVC模型验证
    AutoMapper完成Dto与Model的转换
    【转】Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
    MVC过滤器详解
    IOC框架Ninject实践总结
    【转】NHibernate对象以及状态说明
    轻量级IOC框架:Ninject (上)
    mysql5.7 误删管理员root账户
    杂项
    X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决
  • 原文地址:https://www.cnblogs.com/tangkaixin/p/6376692.html
Copyright © 2011-2022 走看看