Files
breedr/RELEASE_NOTES_v0.4.0.md

7.5 KiB
Raw Blame History

BREEDR v0.4.0 Release Notes

Release Date: March 9, 2026
Branch: docs/clean-schema-and-roadmap-update
Focus: Clean Database Schema & Documentation Overhaul


🆕 What's New

Clean Database Architecture

We've completely overhauled the database design for simplicity and correctness:

  • NO MORE MIGRATIONS - Fresh init creates correct schema automatically
  • Removed weight/height columns - Never implemented, now gone
  • Added litter_id column - Proper linking of puppies to litters
  • Parents table approach - NO sire/dam columns in dogs table
  • Normalized relationships - Sire/dam stored in separate parents table

Why This Matters

The old schema had:

  • Migration scripts trying to fix schema issues
  • sire_id and dam_id columns causing "no such column" errors
  • Complex migration logic that could fail

The new schema:

  • Clean initialization - always correct
  • Normalized design - proper relationships
  • Simple maintenance - no migration tracking
  • Better logging - see exactly what's happening

🛠️ Technical Changes

Database

Removed:

  • dogs.weight column (never implemented)
  • dogs.height column (never implemented)
  • dogs.sire_id column (moved to parents table)
  • dogs.dam_id column (moved to parents table)
  • server/db/migrations.js (no more migrations)

Added:

  • dogs.litter_id column with foreign key to litters
  • parents table for sire/dam relationships
  • Clean server/db/init.js as single source of truth

API Changes

server/routes/dogs.js:

  • Fixed parent handling - properly uses parents table
  • Added detailed logging for relationship creation
  • Removed schema detection logic
  • Cleaner error messages

server/index.js:

  • Removed migrations import and execution
  • Simplified startup - just calls initDatabase()
  • Better console output with status indicators

Documentation

New Files:

  • DATABASE.md - Complete schema reference
  • CLEANUP_NOTES.md - Lists outdated files to remove
  • RELEASE_NOTES_v0.4.0.md - This file

Updated Files:

  • README.md - Current features and setup instructions
  • ROADMAP.md - Accurate progress tracking and version history

Outdated Files (Manual Deletion Required):

  • DATABASE_MIGRATIONS.md
  • DEPLOY_NOW.md
  • FEATURE_IMPLEMENTATION.md
  • FRONTEND_FIX_REQUIRED.md
  • IMPLEMENTATION_PLAN.md
  • SPRINT1_PEDIGREE_COMPLETE.md
  • migrate-now.sh

See CLEANUP_NOTES.md for details.


🚀 Upgrade Instructions

For Fresh Installs

No action needed! The database will initialize correctly:

git clone https://git.alwisp.com/jason/breedr.git
cd breedr
git checkout docs/clean-schema-and-roadmap-update
docker-compose up -d

For Existing Installations

Important: This update requires starting with a fresh database.

  1. Backup your data:

    cp data/breedr.db data/breedr.db.backup
    
  2. Stop the application:

    docker-compose down
    
  3. Delete old database:

    rm data/breedr.db
    
  4. Pull latest code:

    git pull origin docs/clean-schema-and-roadmap-update
    
  5. Rebuild and restart:

    docker-compose up -d --build
    
  6. Verify database:

    docker exec -it breedr sqlite3 /app/data/breedr.db ".schema dogs"
    

    You should see litter_id but NO sire_id, dam_id, weight, or height columns.

Data Migration Notes

Parent Relationships:

  • Cannot be automatically migrated due to schema change
  • You'll need to re-enter sire/dam relationships for existing dogs
  • Use the dog edit form or litter linking feature

All Other Data:

  • Basic dog info (name, breed, sex, etc.) can be re-entered
  • Photos will need to be re-uploaded
  • Consider this a fresh start with a clean, correct schema

🐛 Bug Fixes

  • Fixed: "no such column: sire" errors
  • Fixed: "no such column: weight" errors
  • Fixed: "no such column: height" errors
  • Fixed: Parent relationships not saving properly
  • Fixed: Schema detection failures on startup
  • Fixed: Migration system complexity

📚 Documentation Updates

DATABASE.md

Comprehensive database documentation including:

  • Schema design principles
  • All table structures with SQL
  • API usage examples
  • Query examples for relationships
  • Fresh install instructions
  • Troubleshooting guide

README.md

Updated with:

  • Current feature list
  • Clean schema explanation
  • Fresh install vs upgrade instructions
  • Troubleshooting for common errors
  • Links to documentation

ROADMAP.md

Updated with:

  • Phase 1-3 marked complete
  • v0.4.0 release notes
  • Current sprint focus recommendations
  • Version history

🧐 Developer Notes

New Development Workflow

For database changes:

  1. Edit server/db/init.js only
  2. Test with fresh database: rm data/breedr.db && npm run dev
  3. Update DATABASE.md documentation
  4. No migrations needed!

For API changes involving parents:

  • Use parents table for sire/dam relationships
  • Check server/routes/dogs.js for examples
  • Log relationship creation for debugging

Testing

Test these scenarios:

  1. Fresh install - database created correctly
  2. Add dog with sire/dam - parents table populated
  3. Add dog via litter - litter_id set, parents auto-linked
  4. View dog details - parents and offspring shown correctly
  5. Pedigree view - multi-generation tree displays

📊 What's Next

  1. Trial Pairing Simulator (4-6 hours)

    • Uses existing COI calculator backend
    • High value for breeding decisions
    • Relatively quick to implement
  2. Health Records System (6-8 hours)

    • Important for breeding decisions
    • Vaccination tracking
    • Document management
  3. Heat Cycle Management (6-8 hours)

    • Natural extension of litter management
    • Calendar functionality
    • Breeding planning

See ROADMAP.md for full details.


Support

Documentation:

Common Issues:

  • "no such column" errors → Delete database and restart
  • Parents not saving → Check server logs for relationship creation
  • Schema looks wrong → Verify with .schema dogs command

Logs:

docker logs breedr

🎉 Credits

Clean schema design and implementation by the BREEDR development team.

Special thanks for thorough testing and validation of the new database architecture.


📝 Changelog Summary

Added

  • Clean database initialization system
  • dogs.litter_id column
  • parents table for relationships
  • DATABASE.md documentation
  • Detailed logging for debugging
  • CLEANUP_NOTES.md
  • RELEASE_NOTES_v0.4.0.md

Changed

  • Database init is now single source of truth
  • Parent relationships use parents table
  • README.md updated
  • ROADMAP.md updated
  • Simplified server startup

Removed

  • Migration system (server/db/migrations.js)
  • dogs.weight column
  • dogs.height column
  • dogs.sire_id column
  • dogs.dam_id column
  • Schema detection logic
  • Outdated documentation (marked for deletion)

Fixed

  • "no such column" errors
  • Parent relationship saving
  • Schema consistency issues
  • Migration failures

Full Diff: Compare branches on Gitea

Next Release: v0.5.0 - Trial Pairing Simulator (planned)