Skip to content

🧹 Technical Debt: Split Monolithic database.py Module #25

@dannycab

Description

@dannycab

Problem

database.py is 1279 lines with 50+ methods - difficult to maintain and test.

Refactor Proposal

Split into focused modules:

wikiaccess/database/
β”œβ”€β”€ __init__.py
β”œβ”€β”€ connection.py      # Database connection management
β”œβ”€β”€ schema.py          # Schema creation and migrations
β”œβ”€β”€ pages.py           # Page operations
β”œβ”€β”€ images.py          # Image operations
β”œβ”€β”€ links.py           # Link operations
β”œβ”€β”€ discovery.py       # Discovery operations
β”œβ”€β”€ accessibility.py   # Accessibility operations
└── queries.py         # Complex query builders

Benefits

  • Easier to test in isolation
  • Better code organization
  • Easier to understand and modify
  • Can use dependency injection

Tasks

  • Create database/ subpackage
  • Extract connection management
  • Split page operations
  • Split image operations
  • Split link operations
  • Split discovery operations
  • Update imports throughout codebase
  • Add integration tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority/mediumMedium priority - Important but not urgenttype/sustainabilityTechnical debt and maintenance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions