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.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
postgresql, python
Domain
cli, database

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.

Description

bug

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).

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

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.

More from MerginMaps/db-sync

All issues in MerginMaps/db-sync

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.