hasura / hasura/graphql-engine
Version Control to avoid Database conflicts
- Dominant language
- TypeScript
- Stars
- 32.1k
- Forks
- 3k
- PR merge metrics
- PR metrics pending
Description
### Component
Graphql Engine (for features that relates to graphql features; metadata modeling) -> c/v3-engine
### Is your proposal related to a problem?
So we have multiple branches on which we work on different stories which include multiple database changes. For Suppose I add a database field `field1` for one story in one branch and I want to stop this work in mid and work on another database change `field2` in another branch, I can't do that because the hasura metadata will already assume the database changes in my previous branch. I just want to push `field2` without any changes related to `field1`.
### Describe the solution you'd like
So we would have something like a branch which we can create and there will be a `main` branch which is similiar to github. Whenever we checkout to a new branch and make database changes or migrations, It should be confined to that branch including the hasura metadata. So In this way, If I want to make another change to the database, I can just create another branch on Hasura from `main` and make those changes and push it without the previous changes.
### Describe alternatives you've considered
I didn't consider any alternatives as of now, This is the bigger problem as most people will be working on multiple stories at the same time and they don't want the changes of story 1 to reflect in the changes of story 2.
Contributor guide
Research direction
The issue names c/v3-engine as the component but no files or tests. Start by mapping how that component handles Hasura metadata and database migrations, then define how branch creation, checkout, and pushing should isolate changes. Done would require a decided design and verification that changes from one branch do not appear in another.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql
- Domain
- databases, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100