BrighterCommand / BrighterCommand/Brighter

Extend Database Migrations to NoSQL stores

Open
#4,156 0 comments 0 reactions 0 assignees View on GitHub
.NET 0 - Backlog Draft feature request under_discussion
Dominant language
C#
Stars
2.5k
Forks
296
Avg merge
1d 11h
Merged PRs (30d)
21

Description

### No support for NoSQL stores in DB Migration tools

The DB Migration tools in Paramore.Brighter.BoxProvisioning covers SQL stores but not NoSQL stores like DynamoDB and MongoDB. These tend to have different approaches to schema, locking, etc., so they require a different approach.

- Provisioning can use the existing process for a fresh install, but we should harmonize the interface as much as possible
- It may be that if we do not need to alter index properties, and the payload is JSON, the issue is whether the application code can handle earlier versions, our migration code would have to load and re-save previous JSON entries
- If we need to alter indexable properties, it may be beyond us, as it may require a new table and migrating all the existing entries

### References

[Evolve Your Amazon DynamoDb Tables](https://aws.amazon.com/blogs/database/evolve-your-amazon-dynamodb-tables-data-model/)
[Dynamo Data Migrations](https://github.com/technogise/dynamo-data-migrations)
[Can you change DynamoDb schemas?](https://www.youtube.com/watch?v=Zm7saJeRNN4)

Contributor guide

Open the contributing guide

Research direction

Start in Paramore.Brighter.BoxProvisioning and read the existing SQL DB Migration tools to identify the interface and fresh-install provisioning flow. Then compare the migration constraints described for DynamoDB and MongoDB, using the linked references. Done requires an agreed design and implementation scope for NoSQL provisioning and migrations; the issue does not name files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, csharp, mongodb
Domain
databases, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.