kostas-petrakis opened a new issue, #8237:
URL: https://github.com/apache/incubator-devlake/issues/8237

   <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
   -->
   
   ## Question: ScopeId as varchar in BlueprintScope causing Jira plugin issues
   
   I'm working on fixing some PostgreSQL-related issues and noticed that the 
`ScopeId` field in the `BlueprintScope` struct is defined as a `string`:
   
   ```go
   type BlueprintScope struct {
        BlueprintId  uint64 `json:"-" gorm:"primaryKey" validate:"required"`
        PluginName   string `json:"-" gorm:"primaryKey;type:varchar(255)" 
validate:"required"`
        ConnectionId uint64 `json:"-" gorm:"primaryKey" validate:"required"`
        ScopeId      string `json:"scopeId" gorm:"primaryKey;type:varchar(255)" 
validate:"required"`
   }
   ```
   
   This is causing errors when configuring the Jira plugin, specifically when 
`ScopeId` (which is a string) is compared with `board_id` (which seems to be a 
`bigint` in the Jira plugin's table):
   
   ```shell
   ERROR: operator does not exist: bigint = character varying (SQLSTATE 
42883)\n\x1b[0m\x1b[33m[1.048ms] \x1b[34;1m[rows:0]\x1b[0m SELECT bp.id AS 
blueprint_id, bp.project_name, bps.scope_id, _tool_jira_boards.* FROM 
_devlake_blueprint_scopes bps LEFT JOIN _devlake_blueprints bp ON (bp.id = 
bps.blueprint_id) LEFT JOIN _tool_jira_boards ON 
(_tool_jira_boards.connection_id = bps.connection_id AND 
_tool_jira_boards.board_id = bps.scope_id) WHERE bps.plugin_name = 'jira' AND 
bps.connection_id = 2"
   
   
   2024/12/10 15:42:34 [Recovery] 2024/12/10 - 15:42:34 panic recovered:
   ERROR: operator does not exist: bigint = character varying (SQLSTATE 42883) 
(500)
   Wraps: (2) ERROR: operator does not exist: bigint = character varying 
(SQLSTATE 42883)
   ```
   
   I'm currently working on a workaround that involves checking the database 
dialect, but a cleaner solution might be to change `ScopeId` to `uint64`.
   
   Before I pursue that route, I wanted to check if there's a specific reason 
why `ScopeId` is defined as `string`. Is there a plugin or use case that relies 
on `ScopeId` being a string? Otherwise we could possibly convert this field 
type?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@devlake.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to