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