pip install pymysql
然后在配置testDatabase.py
from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:@127.0.0.1:3306/test"engine = create_engine( SQLALCHEMY_DATABASE_URL, encoding='utf8', echo=True ) TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()
修改成本地的連接mysql,連接的test的數據庫,我們需要在本地去創(chuàng )建test的數據庫,那么我們創(chuàng )建完畢后,去啟動(dòng),發(fā)現報錯

在自動(dòng)創(chuàng )建數據庫的時(shí)候,使用mysql數據庫,String類(lèi)型對應的是VARCHAR類(lèi)型,需要指定長(cháng)度,否則會(huì )報下面錯誤,而在sqlite不會(huì )出現。
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
from config import EVENT
if EVENT == "test":
from models.testDatabase import Base, engine
else:
from models.database import Base, engine
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
email = Column(String(length=252), unique=True, index=True)
hashed_password = Column(String(length=252))
is_active = Column(Boolean, default=True)
items = relationship("Item", back_populates="owner")
class Item(Base):
__tablename__ = "items"
id = Column(Integer, primary_key=True, index=True)
title = Column(String(length=252), index=True)
description = Column(String(length=252), index=True)
owner_id = Column(Integer, ForeignKey("users.id"))
owner = relationship("User", back_populates="items")然后我們在啟動(dòng),

日志里面正常去創(chuàng )建了對應的數據庫。

在數據庫的對應的數據表也同步創(chuàng )建成功,這樣我們就完成了,測試服的替換,我們可以用接口工具postman去調試下。

可以看到創(chuàng )建成功,

數據庫中,也正常了創(chuàng )建了對應的數據,我們在測試服的更改數據庫完成,同比,我們的其他環(huán)境也可以這么修改即可。
代碼存儲https://gitee.com/liwanlei/fastapistuday
文章首發(fā)在公眾號,歡迎關(guān)注。
文章來(lái)源:https://www.cnblogs.com/leiziv5/archive/2021/11/21/15583674.html
聯(lián)系客服