34、flask---Flask-SQLAlchemy下alembic的配置

Flask-SQLAlchemy下alembic的配置步骤:
1. 定义好自己的模型和在config中配置数据库连接



DEBUG = True
# 修改代码后自动重新加载
TEMPLATES_AUTO_RELOAD=True
# 数据库配置
HOSTNAME = '127.0.0.1'

PORT = 3306

DATABASE = 'test_flask_learn'

USERNAME = 'root'

PASSWORD ='123456'

#dialect+driver://username:password@host:port/database
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/" \
         "{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

#SQLALCHEMY_DATABASE_URI是定死的,只能这么写
SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False

DEBUG = True
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

class UserModel(db.Model):
    __tablename__ = 'user_model'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    username = db.Column(db.String(50),nullable=False)
    age=db.Column(db.Integer)
    def __repr__(self):
        return "<User(username: %s)>" % self.username

class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(50),nullable=False)
    uid = db.Column(db.Integer,db.ForeignKey("user_model.id"))

    author = db.relationship("User",backref="artiles")


@app.route('/')
def hello_world():
    return 'Hello World'


if __name__ == '__main__':
    app.run()


2. 使用alembic创建一个仓库:`alembic init [仓库的名字,推荐使用alembic]`。

alembic init alembic 

3. 修改配置文件:
    * 在`alembic.ini`中,给`sqlalchemy.url`设置数据库的连接方式。这个连接方式跟sqlalchemy的方式一样的。

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

    * 在`alembic/env.py`中的`target_metadata`设置模型的`Base.metadata`。但是要导入`models`,需要将models所在的路径添加到这个文件中。示例代码如下:

# 将E:\flask_learn路径添加进来
import sys, os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
import flask_learn
target_metadata = flask_learn.db.metadata

4. 将ORM模型生成迁移脚本:`alembic revision --autogenerate -m 'message'`。
5. 将生成的脚本映射到数据库中:`alembic upgrade head`。
6. 以后如果修改了模型,重复4、5步骤。

Note:

       在终端中,如果想要使用alembic,则需要首先进入到安装了alembic的虚拟环境中,不然就找不到这个命令。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值