003_paddock_schema_fixes.sql 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. -- =============================================================================
  2. -- Migration 003 — Paddock schema fixes
  3. -- Run once: mysql -u <user> -p cropmonitor < 003_paddock_schema_fixes.sql
  4. -- =============================================================================
  5. -- ── block_info fixes ──────────────────────────────────────────────────────────
  6. -- gps was INT — GPS strings like "-33.8688, 151.2093" were silently lost
  7. ALTER TABLE `block_info`
  8. MODIFY COLUMN `gps` VARCHAR(100) DEFAULT NULL;
  9. -- area was INT — fractional hectares (e.g. 12.5) were truncated
  10. ALTER TABLE `block_info`
  11. MODIFY COLUMN `area` DECIMAL(10,2) DEFAULT NULL;
  12. -- soil type is captured in the create/edit modal but had no column
  13. ALTER TABLE `block_info`
  14. ADD COLUMN `analysis_type` VARCHAR(30) DEFAULT NULL
  15. AFTER `area`;
  16. -- utf8 for all text fields (was latin1)
  17. ALTER TABLE `block_info`
  18. CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  19. -- ── plant_records — add block_id for paddock linking ─────────────────────────
  20. ALTER TABLE `plant_records`
  21. ADD COLUMN `block_id` VARCHAR(50) DEFAULT NULL
  22. AFTER `site_id`;
  23. CREATE INDEX `idx_plant_block` ON `plant_records` (`modx_user_id`, `block_id`);
  24. -- ── water_records — add block_id for paddock linking ─────────────────────────
  25. ALTER TABLE `water_records`
  26. ADD COLUMN `block_id` VARCHAR(50) DEFAULT NULL
  27. AFTER `site_id`;
  28. CREATE INDEX `idx_water_block` ON `water_records` (`modx_user_id`, `block_id`);
  29. -- ── crop_info — richer crop tracking ─────────────────────────────────────────
  30. ALTER TABLE `crop_info`
  31. ADD COLUMN `variety` VARCHAR(50) DEFAULT NULL AFTER `name`,
  32. ADD COLUMN `planting_date` DATE DEFAULT NULL AFTER `variety`,
  33. ADD COLUMN `harvest_date` DATE DEFAULT NULL AFTER `planting_date`,
  34. ADD COLUMN `status` VARCHAR(20) DEFAULT 'active' AFTER `harvest_date`,
  35. ADD COLUMN `notes` TEXT DEFAULT NULL AFTER `status`;
  36. ALTER TABLE `crop_info`
  37. CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;