# Work Queue Schema Repair 0.78.6.1

## Problem

Upgrade 0.78.6 mógł zatrzymać się na:

```text
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'role_key' in 'field list'
```

Źródło problemu było dwuczęściowe:

1. Runtime Preflight używał `role_key` w części PHP, mimo że migracja 087 i Enterprise Module Registry używają `owner_role`.
2. Work Queue polegał na `CREATE TABLE IF NOT EXISTS`, które nie modyfikuje już istniejących tabel utworzonych częściowo przez wcześniejszą próbę upgrade'u.

## Decyzja architektoniczna

Kanoniczna kolumna w rejestrach systemowych pozostaje:

```text
owner_role
```

Kanoniczna kolumna w kolejkach wykonawczych pozostaje:

```text
role_key
```

To rozdzielenie jest celowe:

- `owner_role` opisuje właściciela modułu/scenariusza,
- `role_key` opisuje rolę, do której trafia konkretna pozycja pracy.

## Naprawa

Patch dodaje defensywną warstwę kompatybilności:

- `system_acceptance_scenarios.owner_role` jest zapewniane i uzupełniane z legacy `role_key`, jeżeli istnieje.
- `system_modules.owner_role` jest zapewniane i uzupełniane z legacy `role_key`, jeżeli istnieje.
- `enterprise_work_sla_policies.role_key` jest zapewniane przed seedem SLA.
- `enterprise_work_items.role_key` jest zapewniane przed synchronizacją Journey Actions.
