gpt4 book ai didi

python - 使用 SQLAlchemy 生成架构 SQL

转载 作者:行者123 更新时间:2023-12-01 03:08:16 24 4
gpt4 key购买 nike

在使用声明性基础时,如何使用 SQLAlchemy 生成 SQL/迁移代码/其他内容?

from sqlalchemy import *
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
engine = create_engine('mysql://root:password@localhost/mydb_dev', echo=True)
metadata = MetaData(bind=engine)


class User(Base):
__table__ = Table("users", metadata, autoload=True)

id = Column(Integer, primary_key=True)
display_name = Column(String)
email = Column(String)
password = Column(String)

def __repr__(self):
return "<User(id='{}', display_name='{}', email='{}')>".format(self.id, self.display_name, self.email)


class Site(Base):
__table__ = Table("sites", metadata, autoload=True)

id = Column(Integer, primary_key=True)
name = Column(String)
urls = relationship("URL")

def __repr__(self):
return "<Site(id='{}', name='{}')>".format(self.id, self.name)

到目前为止我已经有了这个,我想看看 SQLAlchemy 会生成什么模式。

或者,SQLAlchemy 真的这样做吗?在这种情况下,我是否单独创建和管理数据库及其架构,而我只是更新我的实体以反射(reflect)它?

请理解我已经习惯了 Doctrine2,并且对 SQLAlchemy 很陌生

谢谢!

最佳答案

您可以通过调用创建数据库模型:

metadata.create_all()

http://docs.sqlalchemy.org/en/latest/core/metadata.html#sqlalchemy.schema.MetaData.create_all

请注意,这仅适用于创建以前不存在的模型,并且不处理更新或降级。查看 alembic 以获得更精细的控制:

http://alembic.zzzcomputing.com/en/latest/

关于python - 使用 SQLAlchemy 生成架构 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com