【配置sqlalchemy】配置并且迁移数据表
2022/9/14 2:18:25
本文主要是介绍【配置sqlalchemy】配置并且迁移数据表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1:目录结构
2:配置sqlalchemy参数文件 : config.py
# config.py from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker #数据库访问地址 SQLALCHEMY_DATABASE_URL = "sqlite:///./database/app.sqlite3" # SQL # SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db" # MYSQL #启动引擎 engine = create_engine( SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} ) #启动会话 SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) #数据模型的基类 Base = declarative_base()
3:添加表模型文件: model.py
#model.py from sqlalchemy import Boolean, Column, Integer, String, create_engine from .config import Base # 用户信息 class UserInfo(Base): __tablename__="userinfo" id = Column(Integer, primary_key=True,index=True,autoincrement=True) # autoincrement自增长 index索引 username = Column(String,unique=True,nullable=True,index=True,comment="用户名") # nullable不能为空 name = Column(String(10),unique=True,index=True) phone = Column(String,unique=True,index=True) age = Column(Integer,nullable=True,) sex = Column(Integer,nullable=True,) is_active = Column(Boolean, default=True) def __repr__(self): return self.username
4:更新、迁移数据库
1: 终端安装alembic : pip install alembic 2:终端初始化alembic : alembic init alembic 3:将alembic.ini中的sqlalchemy.url改为你数据库地址: sqlalchemy.url = sqlite:///./database/app.sqlite3 (要与./database/config.py配置的一样) 4:找到alembic文件夹下的env.py,找到target_metadata = None 替换: import sys from os.path import abspath, dirname from database.model import Base # 这里是Base是model.py模板里面的BASE # 告诉alembic 你的表数据在哪 sys.path.append(dirname(dirname(abspath(__file__)))) target_metadata = Base.metadata
PS:到此为止配置成功!
两行迁移命令: 1:alembic revision --autogenerate -m "自定义迁移文件名" 2:alembic upgrade head
这篇关于【配置sqlalchemy】配置并且迁移数据表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!
- 2024-05-08今天开始程序员不用再发愁写commit message了,全部由CodeGeeX自动完成!