diff --git a/src/data/roadmaps/backend/backend.json b/src/data/roadmaps/backend/backend.json index 4045ce770..215295dc9 100644 --- a/src/data/roadmaps/backend/backend.json +++ b/src/data/roadmaps/backend/backend.json @@ -1318,7 +1318,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1234.4323026615211 + "y": 1195.4323026615211 }, "selected": false, "data": { @@ -1344,7 +1344,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1234.4323026615211 + "y": 1195.4323026615211 }, "dragging": false }, @@ -1355,7 +1355,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1450.4323026615211 + "y": 1411.4323026615211 }, "selected": false, "data": { @@ -1381,7 +1381,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1450.4323026615211 + "y": 1411.4323026615211 }, "dragging": false }, @@ -1392,7 +1392,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1288.4323026615211 + "y": 1249.4323026615211 }, "selected": false, "data": { @@ -1418,7 +1418,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1288.4323026615211 + "y": 1249.4323026615211 }, "dragging": false }, @@ -1429,7 +1429,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1504.4323026615211 + "y": 1465.4323026615211 }, "selected": false, "data": { @@ -1455,7 +1455,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1504.4323026615211 + "y": 1465.4323026615211 }, "dragging": false }, @@ -1466,7 +1466,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1342.4323026615211 + "y": 1303.4323026615211 }, "selected": false, "data": { @@ -1492,7 +1492,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1342.4323026615211 + "y": 1303.4323026615211 }, "dragging": false }, @@ -1503,7 +1503,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1558.4323026615211 + "y": 1519.4323026615211 }, "selected": false, "data": { @@ -1529,7 +1529,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1558.4323026615211 + "y": 1519.4323026615211 }, "dragging": false, "resizing": false @@ -1541,7 +1541,7 @@ "type": "subtopic", "position": { "x": 141.1821043313223, - "y": 1396.4323026615211 + "y": 1357.4323026615211 }, "selected": false, "data": { @@ -1567,7 +1567,7 @@ "focusable": true, "positionAbsolute": { "x": 141.1821043313223, - "y": 1396.4323026615211 + "y": 1357.4323026615211 }, "dragging": false }, @@ -6148,6 +6148,41 @@ }, "focusable": true, "resizing": false + }, + { + "id": "ZsZvStCvKwFhlBYe9HGhl", + "type": "subtopic", + "position": { + "x": 141.18643733008196, + "y": 1573.4323026615211 + }, + "selected": false, + "data": { + "label": "Migrations", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "legend": { + "id": "NJhQIvMyMD1Cu-JA1UCmJ", + "color": "#874efe", + "label": "Personal Recommendation / Opinion", + "position": "right-center" + } + }, + "zIndex": 999, + "width": 161, + "height": 49, + "positionAbsolute": { + "x": 141.18643733008196, + "y": 1573.4323026615211 + }, + "dragging": false, + "style": { + "width": 161, + "height": 49 + } } ], "edges": [ @@ -7875,6 +7910,23 @@ }, "id": "reactflow__edge-NvUcSDWBhzJZ31nzT4UlEw2-Wcp-VDdFHipwa7hNAp1z_x1", "selected": false + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "LJt27onEOeIBomiEMTyKd", + "sourceHandle": "z2", + "target": "ZsZvStCvKwFhlBYe9HGhl", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-LJt27onEOeIBomiEMTyKdz2-ZsZvStCvKwFhlBYe9HGhly1", + "selected": false } ] -} +} \ No newline at end of file diff --git a/src/data/roadmaps/backend/content/god-design-patterns@6XIWO0MoE-ySl4qh_ihXa.md b/src/data/roadmaps/backend/content/god-design-patterns@6XIWO0MoE-ySl4qh_ihXa.md deleted file mode 100644 index ac419ee7c..000000000 --- a/src/data/roadmaps/backend/content/god-design-patterns@6XIWO0MoE-ySl4qh_ihXa.md +++ /dev/null @@ -1,13 +0,0 @@ -# Design Patterns - -Design patterns are typical solutions to commonly occurring problems in software design. They can be broken into three categories: - -- Creational Patterns for the creation of objects -- Structural Patterns to provide relationship between objects -- Behavioral Patterns to help define how objects interact - -Visit the following resources to learn more: - -- [@opensource@Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans) -- [@article@GOF design patterns](https://springframework.guru/gang-of-four-design-patterns/) -- [@article@Design Patterns](https://refactoring.guru/design-patterns) diff --git a/src/data/roadmaps/backend/content/migrations@ZsZvStCvKwFhlBYe9HGhl.md b/src/data/roadmaps/backend/content/migrations@ZsZvStCvKwFhlBYe9HGhl.md new file mode 100644 index 000000000..8dbce1fc0 --- /dev/null +++ b/src/data/roadmaps/backend/content/migrations@ZsZvStCvKwFhlBYe9HGhl.md @@ -0,0 +1,8 @@ +# Migrations + +Database migrations are a version-controlled way to manage and apply incremental changes to a database schema over time, allowing developers to modify the database structure (e.g., adding tables, altering columns) without affecting existing data. They ensure that the database evolves alongside application code in a consistent, repeatable manner across environments (e.g., development, testing, production), while maintaining compatibility with older versions of the schema. Migrations are typically written in SQL or a database-agnostic language, and are executed using migration tools like Liquibase, Flyway, or built-in ORM features such as Django or Rails migrations. + +Learn more from the following resources: + +- [@article@What are database migrations?](https://www.prisma.io/dataguide/types/relational/what-are-database-migrations) +- [@video@Database Migrations for Beginners](https://www.youtube.com/watch?v=dJDBP7pPA-o) \ No newline at end of file