Skip to content

Conversation

@wavexnani
Copy link

MySQL Replica Database Support

What I Did

  • Implemented MySQL database connectivity for montage.
  • Enabled connection to Wikimedia replica databases.

Flexible Credential Handling

  • Introduced a database section in config.dev.yaml.
  • Prioritizes reading credentials (user, password) from ~/replica.my.cnf (if present and valid).
  • Falls back to username and password from config.dev.yaml if .my.cnf is not used or fails.
  • Ensures the db_url passed to the application is fully self-contained with credentials.

Simplified App Logic

  • Streamlined sqlalchemy.create_engine calls in montage/app.py.
  • app.py now directly uses the complete db_url for engine setup.
  • Ensures MySQL-specific charset and collation are applied.

Resolved Issues Encountered

  • Dependency conflicts (pyvotecore, SQLAlchemy).
  • Circular import between app.py and utils.py.
  • YAML parsing errors in config.dev.yaml.

…ment

Introduces support for MySQL replica connections with flexible
credential handling.

Also, removes the 'monday/' virtual environment from repository
tracking and configures it to be ignored locally via .git/info/exclude
to prevent accidental commits of local environment files.
Ensures project dependencies are managed via requirements.txt and
requirements.in.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Factor out database url / credentials in config

1 participant