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()
  • 相关阅读:
    C++编程入门题目--No.5
    C++编程入门题目--No.4
    C++编程入门题目--No.3
    C++编程入门题目--No.2
    C++入门编程题目 NO.1
    深度使用魅族16T后的评价(本人魅友,绝对客观公正,不要盲目的为手机厂商辩护,想想从当初到现在,魅族正在一步步背离自己的信仰,有问题,解决问题才能有更好的发展)
    ACM及各类程序竞赛专业术语
    python刷LeetCode:3.无重复字符的最长子串
    python刷LeetCode:2.两数相加
    python刷LeetCode:1.两数之和
  • 原文地址:https://www.cnblogs.com/tangkaixin/p/6376692.html
Copyright © 2011-2022 走看看