Получить тип данных SQL из модели sqlalchemy - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь сгенерировать документацию для базы данных, созданной с помощью sqlalchemy, и хочу включить столбцы типов данных SQL, которые зависят от текущего механизма. Есть ли способ извлечь это из sqlalchemy? Я попытался пройти по metadata.create_all(engine) кроличьей норе, но быстро заблудился.

По сути, мне нужно сопоставление:

{
    'Integer': 'INT',
    'String': 'VARCHAR',
    ...
}

, который специфичен для текущего механизма и переводит тип sqlalchemy в тип данных SQL.

1 Ответ

0 голосов
/ 26 июня 2018

Вы можете создать / использовать экземпляр диалекта и его компилятор типа:

In [18]: engine = create_engine('postgresql://sdf:sdf@localhost/sdf')

In [19]: types.Unicode().compile(dialect=engine.dialect)
Out[19]: 'VARCHAR'

Обратите внимание, что вы также можете создавать соответствующие Dialect экземпляры подкласса без движка:

In [20]: from sqlalchemy.dialects import mssql

In [21]: d = mssql.dialect()

In [22]: types.Unicode(32).compile(dialect=d)
Out[22]: 'NVARCHAR(32)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...