从 python 使用 TSQL(SQL 服务器上的 mssql)时,如何为 SQLAlchemy 自动生成 ORM 代码?

How can I autogenerate ORM code for SQLAlchemy when consuming TSQL (mssql on SQL Server) from python?

SQLAlchemy 依赖于我构建 ORM 类,如下所示:

from sqlalchemy import Column, DateTime, String, Integer, ForeignKey, func
from sqlalchemy.orm import relationship, backref
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Department(Base):
    __tablename__ = 'department'
    id = Column(Integer, primary_key=True)
    name = Column(String)

有 tool/script/program 可以为我做这件事吗?

例如,在 C# 中,我可以将数据项从数据库资源管理器拖放到 VisualStudio 中,并为我自动生成实体 类(SQL 到 LINQ)。我正在为 python 寻找类似的东西。我在 VisualStudio and/or Spyder 工作。

您是否需要显式定义 类,或者在不编写代码的情况下定义它们是否可行?如果后者没问题,那么 SQLAlchemy 自己的 automap 可能就足够了。

否则,sqlacodegen 工具应该可以为您生成代码。

我刚刚成功使用 sqlacodegen 为我的 MS SQL Server 2014 数据库生成了 类。这非常容易;一下子就爱上了!

我正在使用 Python 3.7(如果重要的话)。以下是我在(管理员?)PowerShell 中使用的命令:

  1. pip install sqlacodegen
  2. pip install pymssql
  3. sqlacodegen mssql+pymssql://sql_username:sql_password@server/database > db_name.py
  4. 它将在您的当前目录中创建 db_name.py。
  5. 然后您可以通过将 db_name.py 移动到与主脚本相同的文件夹并添加 import db_name.
  6. 来使用这些 类

我没有指定端口,我的 server 设置为简单的计算机名称,没有指定安装,即 server\installation。我使用了 sqlacodegen here and the database URL from here.

的说明