diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e62e2c2 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +DATABASE_URL=sqlite://db.sqlite diff --git a/.gitignore b/.gitignore index 9de1006..91d5b1c 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ result # Added by cargo /target +*.sqlite diff --git a/migrations/0001_relay-labels.down.sql b/migrations/0001_relay-labels.down.sql new file mode 100644 index 0000000..3acc4bd --- /dev/null +++ b/migrations/0001_relay-labels.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS RelayLabels; diff --git a/migrations/0001_relay-labels.up.sql b/migrations/0001_relay-labels.up.sql new file mode 100644 index 0000000..ae6dc9d --- /dev/null +++ b/migrations/0001_relay-labels.up.sql @@ -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) +); diff --git a/specs/001-modbus-relay-control/tasks.md b/specs/001-modbus-relay-control/tasks.md index 10bd34c..fcb30a6 100644 --- a/specs/001-modbus-relay-control/tasks.md +++ b/specs/001-modbus-relay-control/tasks.md @@ -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