MerginMaps / MerginMaps/db-sync
Failed to run db sync after changing project name in the config
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 53
- Forks
- 24
- PR merge metrics
- No merged PRs in 30d
Description
A situation that confuses db-sync currently:
- dbsync is started (from database) with project A and base schema A in the database
- dbsync is stopped
- user modifies the configuration to use a newly created project B (at version 0), but does not remove the base schema A
- dbsync is started again - it prints that "Modified and base schemas already exist" and then fails to download a non-existent version of a project
This is because in dbsync.py in init(), when the base schema exists and the project directory does not exist, we are downloading the project at the version that is read from the base schema's metadata - but without checking it is the same project ID
The correct behavior should be to detect that base schema has been used with a different project ID, and then throw a db sync error, with a suggestion to run db sync with --force-init (or to delete the base schema manually).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in dbsync.py, specifically init(), and trace how the existing base schema metadata is compared with the configured project. Done means a different project ID is detected and db sync raises an error suggesting --force-init or manual base-schema removal. No test file is named in the issue, so inspect the existing db sync error tests before adding coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, python
- Domain
- cli, database
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100