Part of #302 (EPIC: Multi-Database MariaDB Compatibility). Extends #307. Governing: ADR-0023, SPEC-0014 (multi-database-support). Depends on: #307 (MariaDB DDL), #324 (Lidarr-optional unblocks the compose MUST-start scenarios).
The audit found MariaDB is broken at three layers beyond #307's DDL scope — a SPOTTER_DATABASE_DRIVER=mysql deployment currently exits at startup, and would fail on first tag write even after DDL lands:
Requirements
Acceptance Criteria
- Fresh MariaDB deployment boots, migrates, and persists tags
- Docs cover all three drivers with working DSN examples
Branch
feature/346-mysql-upsert-docs-compose
PR Convention
PR title references the story; body ends with Closes #346, references the parent epic and governing artifacts above.
🤖 Posted on behalf of @joestump by Claude.
Part of #302 (EPIC: Multi-Database MariaDB Compatibility). Extends #307. Governing: ADR-0023, SPEC-0014 (multi-database-support). Depends on: #307 (MariaDB DDL), #324 (Lidarr-optional unblocks the compose MUST-start scenarios).
The audit found MariaDB is broken at three layers beyond #307's DDL scope — a
SPOTTER_DATABASE_DRIVER=mysqldeployment currently exits at startup, and would fail on first tag write even after DDL lands:Requirements
$1..$6placeholders +ON CONFLICT ... DO NOTHING— MySQL needs?placeholders andINSERT IGNORE/ON DUPLICATE KEY(internal/tags/upsert.go:87-97). Make it dialect-awarego.mod:lib/pqandgo-sql-driver/mysqlare in the indirect block despite blank imports; move to direct requires per SPEC-0014 (go mod tidy) — audit WARNINGdocker compose -f docker-compose.mariadb.yml upstarts, connects, and completes a tag write (CI job or documented manual verification)Acceptance Criteria
Branch
feature/346-mysql-upsert-docs-composePR Convention
PR title references the story; body ends with
Closes #346, references the parent epic and governing artifacts above.🤖 Posted on behalf of
@joestumpby Claude.