This is an automated email from the ASF dual-hosted git repository.

ka94 pushed a commit to branch release-v0.17
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 230f7df43a6feeba489d8370a743f26f7d4da07d
Author: Camille Teruel <[email protected]>
AuthorDate: Mon May 15 19:19:30 2023 +0200

    fix: Fix Job.migrate on postgresql (#5194)
    
    MySQL and postgresql don't have the same syntax to remove a primary key 
constraint.
    
    Co-authored-by: Camille Teruel <[email protected]>
---
 backend/python/plugins/azuredevops/azuredevops/models.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/backend/python/plugins/azuredevops/azuredevops/models.py 
b/backend/python/plugins/azuredevops/azuredevops/models.py
index 35fc0e614..7e96e64cc 100644
--- a/backend/python/plugins/azuredevops/azuredevops/models.py
+++ b/backend/python/plugins/azuredevops/azuredevops/models.py
@@ -18,6 +18,8 @@ from enum import Enum
 from typing import Optional
 import re
 
+from sqlmodel import Session
+
 from pydevlake import Field, Connection, TransformationRule
 from pydevlake.model import ToolModel, ToolScope
 from pydevlake.pipeline_tasks import RefDiffOptions
@@ -121,3 +123,14 @@ class Job(ToolModel, table=True):
     finishTime: datetime.datetime
     state: State
     result: Result
+
+    @classmethod
+    def migrate(self, session: Session):
+        dialect = session.bind.dialect.name
+        if dialect == 'mysql':
+            session.execute(f'ALTER TABLE {self.__tablename__} DROP PRIMARY 
KEY')
+        elif dialect == 'postgresql':
+            session.execute(f'ALTER TABLE {self.__tablename__} DROP CONSTRAINT 
{self.__tablename__}_pkey')
+        else:
+            raise Exception(f'Unsupported dialect {dialect}')
+        session.execute(f'ALTER TABLE {self.__tablename__} ADD PRIMARY KEY 
(id, build_id)')

Reply via email to