Как я могу автоматически генерировать код ORM для SQLAlchemy при использовании TSQL (mssql на SQL Server) из 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)

Есть ли инструмент / сценарий / программа, которая может сделать это для меня?

Например, в C# я могу просто перетаскивать элементы данных из проводника баз данных в VisualStudio и автоматически создавать классы сущностей для меня (от SQL до LINQ). Я ищу что-то подобное для Python. Я работаю в VisualStudio и / или Spyder.

2 ответа

Я только что успешно использовал 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,

Я не указал порт и мой server это просто имя компьютера без указания установки, т.е. server\installation, Я использовал инструкции для sqlacodegen здесь и URL базы данных отсюда.

Нужно ли вам явно определять классы, или они будут определены без написания кода? Если с последним все в порядке, то может понадобиться собственный автомат SQLAlchemy.

В противном случае инструмент sqlacodegen выглядит так, как будто он должен выполнить генерацию кода для вас.

Другие вопросы по тегам