zoukankan      html  css  js  c++  java
  • Flask 第八话之数据库 -- 小插曲alembic -- sqlalchmey迁移工具

    一、安装

    pip install alembic

    二、初始化仓库

    在cmd终端初始化,cd到目标文件夹中创建一个仓库

    alembic init 文件夹名

    三、修改配置信息

    1.修改alembic.ini配置信息

    sqlalchemy.url = mysql+pymysql://root:123456@localhost/db_demo?charset=utf8

    2.为了使模型类更新数据库,需要在env.py文件中设置target_metadata,默认target_metadata=None。使用sys模块把当前项目的路径导入path中

    import sys,os
    # 1.__file__:当前文件(env.py)
    #2.os.path.dirname(__file__):获取当前文件的目录
    #3.os.path.dirname(os.path.dirname(__file__)):获取当前文件目录的上一级目录
    #4.sys.path: python寻找导入的包的所有路径
    sys.path.append(os.path.dirname(os.path.dirname(__file__)))
    
    import models
    
    target_metadata = models.Base.metadata

    四、建立数据库模型

    from sqlalchemy import create_engine,Column,String,Integer,Enum
    from sqlalchemy.ext.declarative import declarative_base
    
    
    HOSTNAME = '127.0.0.1'
    PORT = 3306
    DATABASE = 'db_demo'
    USERNAME = 'root'
    PASSWORD = '123456'
    
    # 链接数据库的字符串,固定格式
    DB_URL = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(
        username = USERNAME,
        password = PASSWORD,
        host = HOSTNAME,
        port = PORT,
        db = DATABASE,
    )
    
    engine = create_engine(DB_URL)
    
    Base = declarative_base(engine)
    
    class User(Base):
        __tablename__ = "user"
        id = Column(Integer,primary_key=True,autoincrement=True)
        name = Column(String(50),nullable=False)
        age = Column(Integer,default=0)
        sex = Column(String(50),Enum("",""))

    五、生成迁移脚本

    alembic revision --autogenerate -m "第一次提交"

    六、将生成的迁移脚本映射到数据库中

    # 更新数据库
    alembic upgrade head
    # 降级
    alembic downgrade head

     七、分享文件结构

  • 相关阅读:
    jdk silent install test
    jdk silent install
    PS_note_01
    string.split('',-1)的作用
    dos下静默安装
    dos命令中rem 与::的区别
    barcode4j用法
    查看tomcat的版本
    eclipse里启动rabbitmq报错 java.net.SocketException: Connection reset
    Mysql性能调优
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/12397366.html
Copyright © 2011-2022 走看看