Как я могу автоматически генерировать код 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:
pip install sqlacodegen
pip install pymssql
sqlacodegen mssql+pymssql://sql_username:sql_password@server/database > db_name.py
- Это создаст db_name.py в вашем текущем каталоге.
- Затем вы можете использовать эти классы, переместив db_name.py в ту же папку, что и ваш основной скрипт, и добавив
import db_name
,
Я не указал порт и мой server
это просто имя компьютера без указания установки, т.е. server\installation
, Я использовал инструкции для sqlacodegen здесь и URL базы данных отсюда.
Нужно ли вам явно определять классы, или они будут определены без написания кода? Если с последним все в порядке, то может понадобиться собственный автомат SQLAlchemy.
В противном случае инструмент sqlacodegen выглядит так, как будто он должен выполнить генерацию кода для вас.