hajdbo commented on pull request #12014:
URL: https://github.com/apache/superset/pull/12014#issuecomment-803279323
The db upgrade "c25cb2c78727, security converge annotations" failed on my
instance.
Somehow, there were role definition duplicates and _find_pvm() would go into
exception because of these duplicates:
```
File "superset/migrations/shared/security_converge.py", line 227, in
migrate_roles
old_pvm = _find_pvm(session, old_pvm_key.view, old_pvm_key.permission)
File "superset/migrations/shared/security_converge.py", line 158, in
_find_pvm
return (
File "sqlalchemy/orm/query.py", line 3413, in one_or_none
raise orm_exc.MultipleResultsFound(
sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for
one_or_none()
```
To fix it, I had to manually remove these three lines in the table:
```
sqlite> SELECT ab_permission_view.id AS ab_permission_view_id,
ab_permission_view.permission_id AS ab_permission_view_permission_id,
ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id FROM
ab_permission_view JOIN ab_permission ON ab_permission.id =
ab_permission_view.permission_id JOIN ab_view_menu ON ab_view_menu.id =
ab_permission_view.view_menu_id WHERE ab_view_menu.name = 'AnnotationModelView'
and ab_permission.name = 'can_show';
284|9|87
286|9|87
sqlite> delete from ab_permission_view where id=286;
sqlite> SELECT ab_permission_view.id AS ab_permission_view_id,
ab_permission_view.permission_id AS ab_permission_view_permission_id,
ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id FROM
ab_permission_view JOIN ab_permission ON ab_permission.id =
ab_permission_view.permission_id JOIN ab_view_menu ON ab_view_menu.id =
ab_permission_view.view_menu_id WHERE ab_view_menu.name = 'AnnotationModelView'
and ab_permission.name = 'can_add';
282|8|87
283|8|87
sqlite> delete from ab_permission_view where id=283;
sqlite> SELECT ab_permission_view.id AS ab_permission_view_id,
ab_permission_view.permission_id AS ab_permission_view_permission_id,
ab_permission_view.view_menu_id AS ab_permission_view_view_menu_id FROM
ab_permission_view JOIN ab_permission ON ab_permission.id =
ab_permission_view.permission_id JOIN ab_view_menu ON ab_view_menu.id =
ab_permission_view.view_menu_id WHERE ab_view_menu.name = 'AnnotationModelView'
and ab_permission.name = 'can_list';
280|7|87
281|7|87
sqlite> delete from ab_permission_view where id=281;
```
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]