MerginMaps / MerginMaps/db-sync

Failed to run db sync after changing project name in the config

Open
#142 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
53
Forks
24
PR merge metrics
No merged PRs in 30d

Description

A situation that confuses db-sync currently:

  1. dbsync is started (from database) with project A and base schema A in the database
  2. dbsync is stopped
  3. user modifies the configuration to use a newly created project B (at version 0), but does not remove the base schema A
  4. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.