apache / incubator-devlake

Apache DevLake is an open-source dev data platform to ingest, analyze, and visualize the fragmented data from DevOps tools, extracting insights for engineering excellence, developer experience, and community growth.
https://devlake.apache.org/
Apache License 2.0
2.5k stars 492 forks source link

[Bug][Pager Duty] Not able to delete the Pager Duty connection #7615

Closed karthikbhat0307 closed 2 weeks ago

karthikbhat0307 commented 2 weeks ago

Search before asking

What happened

I'm getting this error while deleting the connection for the pagerduty.

time="2024-06-13 07:50:10" level=info msg="try locking tables with timeout 2s"time="2024-06-13 07:50:10" level=info msg="\x1b[31;1m/app/impls/dalgorm/dalgorm.go:277 \x1b[35;1mError 1054 (42S22): Unknown column 'connection_id' in 'where clause'\n\x1b[0m\x1b[33m[0.524ms] \x1b[34;1m[rows:0]\x1b[0m DELETE FROM `_tool_pagerduty_scope_configs` WHERE connection_id = 2"time="2024-06-13 07:50:10" level=error msg="Error 1054 (42S22): Unknown column 'connection_id' in 'where clause' (500)\n\tWraps: (2) Error 1054 (42S22): Unknown column 'connection_id' in 'where clause'\n\tError types: (1) *hintdetail.withDetail (2) *mysql.MySQLError"

The main highlighted error is this.

DELETE FROM `_tool_pagerduty_scope_configs` WHERE connection_id = 2"

What do you expect to happen

I want to successfully delete the connection for pagerduty if not needed anymore

How to reproduce

Create a pagerduty connection Add scopes Attach it to any project Remove the connection from project Try to delete the connection post deleting the scopes

Anything else

No response

Version

v1.0.0-beta10@18009e2

Are you willing to submit PR?

Code of Conduct

dosubot[bot] commented 2 weeks ago

Hey @karthikbhat0307! I'm a bot designed to help you with bugs, questions, and becoming a contributor to the project. I'm here to assist you while you wait for a human maintainer.

To resolve the error "Unknown column 'connection_id' in 'where clause'" when trying to delete a PagerDuty connection, you need to ensure that the connection_id column exists in the _tool_pagerduty_scope_configs table in your database schema.

The error occurs in the following part of the deleteConnection method in the ConnectionApiHelper class:

count := errors.Must1(c.db.Count(dal.From(scopeModel.TableName()), dal.Where("connection_id = ?", connectionId)))

and

err = CallDB(c.db.Delete, scopeConfigModel, dal.Where("connection_id = ?", connectionId))

These lines assume that the connection_id column exists in the _tool_pagerduty_scope_configs table. You need to verify that this table has the connection_id column. If it does not, you need to add the column to the table.

Here is an example of how you might add the connection_id column to the _tool_pagerduty_scope_configs table in SQL:

ALTER TABLE _tool_pagerduty_scope_configs ADD COLUMN connection_id BIGINT;

Additionally, ensure that the _tool_pagerduty_connections table has the connection_id column as well. If not, you can add it using the following SQL command:

ALTER TABLE _tool_pagerduty_connections ADD COLUMN connection_id BIGINT;

If the connection_id column is already present, ensure that the column name is correctly spelled and matches the column name used in the dal.Where clause [1][2][3].

To continue talking to Dosu, mention @dosu.