如何使用 SQL Alchemy 在 SQL 服务器中创建图形节点 Table?

How do I create a Graph Node Table in SQL Server using SQL Alchemy?

我正在尝试使用 SQLAlchemy 在 SQL 服务器中创建图表 Table。

SQL 将如下所示:

CREATE TABLE [audit].[tableMetaData](
      [_tableMetaDataId] INT PRIMARY KEY IDENTITY(1,1),
      [table] VARCHAR(200),
      [createdDateTime] DATETIME,
      [loadType] VARCHAR(200),
      [loadBy] VARCHAR(200),
      [description] VARCHAR(MAX),
) AS NODE;

我可以用 SQL Alchemy 创建一个标准的 table,方法如下:

auditMeta = MetaData()
tableMetaData = Table(
    'tableMetaData', auditMeta,
    Column('_tableMetaDataId', INTEGER, primary_key = True),
    Column('table', VARCHAR(200)),
    Column('createdDateTime', DATETIME),
    Column('loadType', VARCHAR(200)),
    Column('loadBy', VARCHAR(200)),
    Column('description', VARCHAR(None)),
    schema = auditSchema
)

auditMeta.create_all(auditEngine)

如何将 'AS NODE' 组件添加到 SQL Alchemy 代码中,让 SQL 服务器知道这是一个图 table?

非常感谢您的帮助。

您可以更改 CreateTable 构造的默认编译

from sqlalchemy.schema import CreateTable
from sqlalchemy.ext.compiler import compiles


auditMeta = MetaData()
tableMetaData = Table(
    'tableMetaData', auditMeta,
    Column('_tableMetaDataId', INTEGER, primary_key = True),
    Column('table', VARCHAR(200)),
    Column('createdDateTime', DATETIME),
    Column('loadType', VARCHAR(200)),
    Column('loadBy', VARCHAR(200)),
    Column('description', VARCHAR(None)),
    schema = auditSchema,
    info={'as_node': True}
)


@compiles(CreateTable)
def create_as_node(create_table, compiler, **kw):
    if create_table.element.info.get('as_node'):
        compiler.post_create_table = lambda x: ' AS NODE'
    return compiler.visit_create_table(create_table, **kw)


auditMeta.create_all(auditEngine)

Custom SQL Constructs and Compilation Extension

中查看更多内容