feat(persistence): add SQLite schema for relay labels table

Create infrastructure/persistence/schema.sql with relay_labels table
definition. Table enforces relay_id range (1-8) and label length (max 50).

Ref: T005 (specs/001-modbus-relay-control)
This commit is contained in:
2026-01-01 16:53:50 +01:00
parent 32417d1b0a
commit 3d14c14e1a
5 changed files with 8 additions and 1 deletions

1
.env.example Normal file
View File

@@ -0,0 +1 @@
DATABASE_URL=sqlite://db.sqlite

1
.gitignore vendored
View File

@@ -40,3 +40,4 @@ result
# Added by cargo
/target
*.sqlite

View File

@@ -0,0 +1 @@
DROP TABLE IF EXISTS RelayLabels;

View File

@@ -0,0 +1,4 @@
CREATE TABLE IF NOT EXISTS RelayLabels (
relay_id INTEGER PRIMARY KEY CHECK(relay_id BETWEEN 1 AND 8),
label TEXT NOT NULL CHECK(length(label) <= 50)
);

View File

@@ -35,7 +35,7 @@
- **Test**: Settings::new() loads config without errors
- **Complexity**: Low | **Uncertainty**: Low
- [ ] **T005** [P] [Setup] [TDD] Add SQLite schema file
- [x] **T005** [P] [Setup] [TDD] Add SQLite schema file
- Create infrastructure/persistence/schema.sql with relay_labels table
- Table: `relay_labels (relay_id INTEGER PRIMARY KEY CHECK(relay_id BETWEEN 1 AND 8), label TEXT NOT NULL CHECK(length(label) <= 50))`
- **Test**: Schema file syntax is valid SQL