From 7e70c3a7393cba82b14d69079c9ef24d314b2961 Mon Sep 17 00:00:00 2001 From: Abdalaziz Rashid Date: Wed, 6 Sep 2023 12:26:28 +0000 Subject: [PATCH] Remove pk constraints This is mainly to support alembic as it generate primary key constraints by default --- ydb_sqlalchemy/sqlalchemy/__init__.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ydb_sqlalchemy/sqlalchemy/__init__.py b/ydb_sqlalchemy/sqlalchemy/__init__.py index adb286c..00a1101 100644 --- a/ydb_sqlalchemy/sqlalchemy/__init__.py +++ b/ydb_sqlalchemy/sqlalchemy/__init__.py @@ -212,8 +212,25 @@ def visit_not_regexp_match_op_binary(self, binary, operator, **kw): class YqlDDLCompiler(DDLCompiler): - pass - + def visit_foreign_key_constraint(self, constraint): + return None + + def visit_primary_key_constraint(self, constraint, **kwargs): + if len(constraint) == 0: + return "" + text = "" + text += "PRIMARY KEY " + text += "(%s)" % ", ".join( + self.preparer.quote(c.name) + for c in ( + constraint.columns_autoinc_first + if constraint._implicit_generated + else constraint.columns + ) + ) + text += self.define_constraint_deferrability(constraint) + return text + def upsert(table): return sa.sql.Insert(table)