46 lines
2.1 KiB
SQL
46 lines
2.1 KiB
SQL
-- Eggtracker schema
|
|
-- This file runs automatically on first container startup only.
|
|
-- To re-run it, remove the mysql_data volume: docker compose down -v
|
|
|
|
CREATE DATABASE IF NOT EXISTS eggtracker
|
|
CHARACTER SET utf8mb4
|
|
COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE eggtracker;
|
|
|
|
-- ── Egg collections ───────────────────────────────────────────────────────────
|
|
CREATE TABLE IF NOT EXISTS egg_collections (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
date DATE NOT NULL,
|
|
eggs INT UNSIGNED NOT NULL,
|
|
notes TEXT,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uq_date (date)
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ── Flock history ─────────────────────────────────────────────────────────────
|
|
-- Each row records a change in flock size. The count in effect for any given
|
|
-- date is the most recent row with date <= that date.
|
|
CREATE TABLE IF NOT EXISTS flock_history (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
date DATE NOT NULL,
|
|
chicken_count INT UNSIGNED NOT NULL,
|
|
notes TEXT,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_date (date)
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ── Feed purchases ────────────────────────────────────────────────────────────
|
|
CREATE TABLE IF NOT EXISTS feed_purchases (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
date DATE NOT NULL,
|
|
bags DECIMAL(5, 2) NOT NULL, -- decimal for partial bags
|
|
price_per_bag DECIMAL(10, 2) NOT NULL,
|
|
notes TEXT,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
INDEX idx_date (date)
|
|
) ENGINE=InnoDB;
|