36 lines
798 B
MySQL
36 lines
798 B
MySQL
|
-- +goose Up
|
||
|
-- +goose StatementBegin
|
||
|
PRAGMA foreign_keys = ON;
|
||
|
|
||
|
CREATE TABLE locks (
|
||
|
id INTEGER PRIMARY KEY,
|
||
|
name TEXT NOT NULL,
|
||
|
zwave_device_id INTEGER NOT NULL UNIQUE
|
||
|
);
|
||
|
|
||
|
CREATE TABLE lock_code_slots (
|
||
|
id INTEGER PRIMARY KEY,
|
||
|
lock INTEGER NOT NULL REFERENCES locks(id),
|
||
|
code TEXT NOT NULL,
|
||
|
slot INTEGER NOT NULL,
|
||
|
name TEXT NOT NULL,
|
||
|
enabled BOOLEAN NOT NULL DEFAULT 0,
|
||
|
|
||
|
UNIQUE (lock, slot)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE lock_log (
|
||
|
lock INTEGER NOT NULL REFERENCES locks(id),
|
||
|
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
state TEXT NOT NULL,
|
||
|
code INTEGER REFERENCES lock_code_slots(id)
|
||
|
);
|
||
|
-- +goose StatementEnd
|
||
|
|
||
|
-- +goose Down
|
||
|
-- +goose StatementBegin
|
||
|
DROP TABLE lock_log;
|
||
|
DROP TABLE lock_code_slots;
|
||
|
DROP TABLE locks;
|
||
|
-- +goose StatementEnd
|