From 6b7638a0c365a5fcde314d145caa5ab3b12d2896 Mon Sep 17 00:00:00 2001 From: Adrian Buckman <33764798+Adedba@users.noreply.github.com> Date: Sun, 29 Mar 2026 22:29:47 +0100 Subject: [PATCH 1/2] Standardise topic IDs and filenames to snake_case Rename all topics/ files from kebab-case to snake_case to match the convention enforced by the JSON schema (^[a-z_]+$). Updates categories.json, manifest.json, and checklist.json file references to match. Synced from sql-to-postgres-guide commit 9898d7c. Co-Authored-By: Claude Sonnet 4.6 --- categories.json | 46 +++++++++---------- checklist.json | 18 ++++---- manifest.json | 22 ++++----- ...kup-recovery.json => backup_recovery.json} | 0 ...nagement.json => database_management.json} | 0 .../{docker-setup.json => docker_setup.json} | 0 ...rror-handling.json => error_handling.json} | 0 ...entals.json => platform_fundamentals.json} | 0 ...trol.json => security_access_control.json} | 0 ...{server-memory.json => server_memory.json} | 0 ...procedures.json => stored_procedures.json} | 0 ...g-functions.json => string_functions.json} | 0 ...locking.json => transactions_locking.json} | 0 ...w-functions.json => window_functions.json} | 0 14 files changed, 43 insertions(+), 43 deletions(-) rename topics/{backup-recovery.json => backup_recovery.json} (100%) rename topics/{database-management.json => database_management.json} (100%) rename topics/{docker-setup.json => docker_setup.json} (100%) rename topics/{error-handling.json => error_handling.json} (100%) rename topics/{platform-fundamentals.json => platform_fundamentals.json} (100%) rename topics/{security-access-control.json => security_access_control.json} (100%) rename topics/{server-memory.json => server_memory.json} (100%) rename topics/{stored-procedures.json => stored_procedures.json} (100%) rename topics/{string-functions.json => string_functions.json} (100%) rename topics/{transactions-locking.json => transactions_locking.json} (100%) rename topics/{window-functions.json => window_functions.json} (100%) diff --git a/categories.json b/categories.json index 4e30ea3..9801307 100644 --- a/categories.json +++ b/categories.json @@ -2,22 +2,22 @@ { "id": "fundamentals", "name": "Platform Fundamentals", - "icon": "\ud83c\udfd7\ufe0f", + "icon": "🏗️", "color": "#3b82f6", "description": "Core concepts, installation, architecture, and version management", "topics": [ { - "id": "platform-fundamentals", + "id": "platform_fundamentals", "name": "Platform Fundamentals", - "file": "platform-fundamentals.json", + "file": "platform_fundamentals.json", "conceptCount": 4, "description": "Installation, management tools, versions, and support models", "keywords": ["installation", "setup", "ide", "management", "tools", "versions", "support", "ssms", "pgadmin"] }, { - "id": "docker-setup", + "id": "docker_setup", "name": "Docker Setup for PostgreSQL", - "file": "docker-setup.json", + "file": "docker_setup.json", "conceptCount": 8, "description": "Complete guide to setting up PostgreSQL using Docker on Windows", "keywords": ["docker", "setup", "installation", "container", "wsl2", "hyper-v", "volumes", "persistence", "pgadmin", "compose"] @@ -27,14 +27,14 @@ { "id": "database", "name": "Database Management", - "icon": "\ud83d\uddc4\ufe0f", + "icon": "🗄️", "color": "#8b5cf6", "description": "Creating, configuring, and maintaining databases", "topics": [ { - "id": "database-management", + "id": "database_management", "name": "Database Creation & Configuration", - "file": "database-management.json", + "file": "database_management.json", "conceptCount": 2, "description": "Core database operations, creation, and configuration", "keywords": ["database", "create", "configuration", "settings", "templates", "encoding", "collation"] @@ -42,7 +42,7 @@ { "id": "transactions_locking", "name": "Transactions and Locking", - "file": "transactions-locking.json", + "file": "transactions_locking.json", "conceptCount": 4, "addedDate": "2026-03-26", "description": "Transaction control, isolation levels, locking behavior, and deadlock handling", @@ -53,14 +53,14 @@ { "id": "backup", "name": "Backup & Recovery", - "icon": "\ud83d\udcbe", + "icon": "💾", "color": "#10b981", "description": "Backup strategies, restore operations, and disaster recovery", "topics": [ { - "id": "backup-recovery", + "id": "backup_recovery", "name": "Backup & Recovery Strategies", - "file": "backup-recovery.json", + "file": "backup_recovery.json", "conceptCount": 4, "description": "Backup strategies, restore operations, and recovery models", "keywords": ["backup", "restore", "recovery", "pg_dump", "wal", "transaction log", "pitr", "point in time"] @@ -70,14 +70,14 @@ { "id": "security", "name": "Security & Access", - "icon": "\ud83d\udd10", + "icon": "🔐", "color": "#f59e0b", "description": "User management, roles, permissions, and security best practices", "topics": [ { - "id": "security-access-control", + "id": "security_access_control", "name": "Security & Access Control", - "file": "security-access-control.json", + "file": "security_access_control.json", "conceptCount": 2, "description": "Authentication, authorization, users, roles, and security features", "keywords": ["security", "authentication", "authorization", "users", "roles", "logins", "permissions", "rls"] @@ -87,14 +87,14 @@ { "id": "programmability", "name": "Programmability", - "icon": "\ud83d\udccb", + "icon": "📋", "color": "#3b82f6", "description": "Creating and calling stored procedures, user-defined functions, and output parameters", "topics": [ { "id": "stored_procedures", "name": "Stored Procedures and Functions", - "file": "stored-procedures.json", + "file": "stored_procedures.json", "conceptCount": 4, "description": "Creating and calling stored procedures, user-defined functions, and output parameters", "keywords": ["stored procedure", "function", "create procedure", "plpgsql", "udf", "output parameters", "table-valued function", "scalar function", "return value", "programmability"] @@ -102,7 +102,7 @@ { "id": "error_handling", "name": "Error Handling", - "file": "error-handling.json", + "file": "error_handling.json", "conceptCount": 3, "addedDate": "2026-03-27", "description": "Structured error handling, custom errors, and error information functions", @@ -113,14 +113,14 @@ { "id": "query_techniques", "name": "Query Techniques", - "icon": "\ud83d\udccb", + "icon": "📋", "color": "#3b82f6", "description": "Common string manipulation functions: searching, splitting, formatting, and pattern matching", "topics": [ { "id": "string_functions", "name": "String Functions", - "file": "string-functions.json", + "file": "string_functions.json", "conceptCount": 4, "addedDate": "2026-03-26", "description": "Common string manipulation functions: searching, splitting, formatting, and pattern matching", @@ -129,7 +129,7 @@ { "id": "window_functions", "name": "Window Functions", - "file": "window-functions.json", + "file": "window_functions.json", "conceptCount": 4, "addedDate": "2026-03-26", "description": "Ranking, aggregate, and value window functions with OVER, PARTITION BY, and frame specifications", @@ -140,14 +140,14 @@ { "id": "performance", "name": "Performance & Optimization", - "icon": "\ud83d\udccb", + "icon": "📋", "color": "#3b82f6", "description": "Managing server memory allocation and parallelism settings for database instances", "topics": [ { "id": "instance_resource_configuration", "name": "Instance Resource Configuration", - "file": "server-memory.json", + "file": "server_memory.json", "conceptCount": 2, "addedDate": "2026-03-27", "description": "Managing server memory allocation and parallelism settings for database instances", diff --git a/checklist.json b/checklist.json index e76fb02..ced6c6b 100644 --- a/checklist.json +++ b/checklist.json @@ -7,7 +7,7 @@ "description": "Mapping SQL Server data types to their PostgreSQL equivalents, including numeric, string, date/time, and binary types", "categoryId": "fundamentals", "categoryName": "Fundamentals", - "file": "data-types.json", + "file": "data_types.json", "status": "in_progress", "retries": 0, "createdAt": "2026-03-25T00:00:00.000Z", @@ -75,7 +75,7 @@ "description": "Creating and calling stored procedures, user-defined functions, and output parameters", "categoryId": "programmability", "categoryName": "Programmability", - "file": "stored-procedures.json", + "file": "stored_procedures.json", "status": "complete", "retries": 0, "createdAt": "2026-03-26T00:00:00.000Z", @@ -109,7 +109,7 @@ "description": "Transaction control, isolation levels, locking behavior, and deadlock handling", "categoryId": "database", "categoryName": "Database Management", - "file": "transactions-locking.json", + "file": "transactions_locking.json", "status": "complete", "retries": 0, "createdAt": "2026-03-26T12:00:00.000Z", @@ -143,7 +143,7 @@ "description": "Common string manipulation functions: searching, splitting, formatting, and pattern matching", "categoryId": "query_techniques", "categoryName": "Query Techniques", - "file": "string-functions.json", + "file": "string_functions.json", "status": "complete", "retries": 0, "createdAt": "2026-03-26T10:00:00.000Z", @@ -177,7 +177,7 @@ "description": "Ranking, aggregate, and value window functions with OVER, PARTITION BY, and frame specifications", "categoryId": "query_techniques", "categoryName": "Query Techniques", - "file": "window-functions.json", + "file": "window_functions.json", "status": "complete", "retries": 0, "createdAt": "2026-03-26T12:00:00.000Z", @@ -211,7 +211,7 @@ "description": "Structured error handling, custom errors, and error information functions", "categoryId": "programmability", "categoryName": "Programmability", - "file": "error-handling.json", + "file": "error_handling.json", "status": "complete", "retries": 0, "createdAt": "2026-03-27T00:00:00.000Z", @@ -240,7 +240,7 @@ "description": "Managing server memory allocation and parallelism settings for database instances", "categoryId": "performance", "categoryName": "Performance & Optimization", - "file": "server-memory.json", + "file": "server_memory.json", "status": "complete", "retries": 0, "createdAt": "2026-03-27T00:00:00.000Z", @@ -264,7 +264,7 @@ "description": "Covers SQL Server log shipping setup vs PostgreSQL WAL-based streaming replication and standby servers for HA and read replicas, and the use of log shipping to migrate from one SQL server to another and Postgres equivalent.", "categoryId": "high_availability", "categoryName": "Database Migration and Reporting Copies", - "file": "log-shipping.json", + "file": "log_shipping.json", "status": "pending", "retries": 0, "createdAt": null, @@ -288,7 +288,7 @@ "description": "Storing, querying, and manipulating JSON data natively in SQL Server and PostgreSQL", "categoryId": "query_techniques", "categoryName": "Query Techniques", - "file": "json-support.json", + "file": "json_support.json", "status": "pending", "retries": 0, "createdAt": null, diff --git a/manifest.json b/manifest.json index 63d296d..5c2b05a 100644 --- a/manifest.json +++ b/manifest.json @@ -7,77 +7,77 @@ "title": "Backup & Recovery", "description": "Backup strategies, restore operations, and recovery models", "conceptCount": 4, - "file": "topics/backup-recovery.json" + "file": "topics/backup_recovery.json" }, { "id": "database_management", "title": "Database Management", "description": "Core database operations, creation, and configuration", "conceptCount": 2, - "file": "topics/database-management.json" + "file": "topics/database_management.json" }, { "id": "docker_setup", "title": "Docker Setup for PostgreSQL", "description": "Complete guide to setting up PostgreSQL using Docker on Windows - includes both Docker Desktop and Hyper-V alternatives", "conceptCount": 8, - "file": "topics/docker-setup.json" + "file": "topics/docker_setup.json" }, { "id": "platform_fundamentals", "title": "Platform Fundamentals", "description": "Installation, management tools, versions, and support models", "conceptCount": 4, - "file": "topics/platform-fundamentals.json" + "file": "topics/platform_fundamentals.json" }, { "id": "security_access_control", "title": "Security & Access Control", "description": "User management, roles, permissions, and security best practices", "conceptCount": 2, - "file": "topics/security-access-control.json" + "file": "topics/security_access_control.json" }, { "id": "stored_procedures", "title": "Stored Procedures and Functions", "description": "Creating and calling stored procedures, user-defined functions, and output parameters", "conceptCount": 4, - "file": "topics/stored-procedures.json" + "file": "topics/stored_procedures.json" }, { "id": "transactions_locking", "title": "Transactions and Locking", "description": "Transaction control, isolation levels, locking behavior, and deadlock handling", "conceptCount": 4, - "file": "topics/transactions-locking.json" + "file": "topics/transactions_locking.json" }, { "id": "string_functions", "title": "String Functions", "description": "Common string manipulation functions: searching, splitting, formatting, and pattern matching", "conceptCount": 4, - "file": "topics/string-functions.json" + "file": "topics/string_functions.json" }, { "id": "window_functions", "title": "Window Functions", "description": "Ranking, aggregate, and value window functions with OVER, PARTITION BY, and frame specifications", "conceptCount": 4, - "file": "topics/window-functions.json" + "file": "topics/window_functions.json" }, { "id": "instance_resource_configuration", "title": "Instance Resource Configuration", "description": "Managing server memory allocation and parallelism settings for database instances", "conceptCount": 2, - "file": "topics/server-memory.json" + "file": "topics/server_memory.json" }, { "id": "error_handling", "title": "Error Handling", "description": "Structured error handling, custom errors, and error information functions", "conceptCount": 3, - "file": "topics/error-handling.json" + "file": "topics/error_handling.json" } ] } diff --git a/topics/backup-recovery.json b/topics/backup_recovery.json similarity index 100% rename from topics/backup-recovery.json rename to topics/backup_recovery.json diff --git a/topics/database-management.json b/topics/database_management.json similarity index 100% rename from topics/database-management.json rename to topics/database_management.json diff --git a/topics/docker-setup.json b/topics/docker_setup.json similarity index 100% rename from topics/docker-setup.json rename to topics/docker_setup.json diff --git a/topics/error-handling.json b/topics/error_handling.json similarity index 100% rename from topics/error-handling.json rename to topics/error_handling.json diff --git a/topics/platform-fundamentals.json b/topics/platform_fundamentals.json similarity index 100% rename from topics/platform-fundamentals.json rename to topics/platform_fundamentals.json diff --git a/topics/security-access-control.json b/topics/security_access_control.json similarity index 100% rename from topics/security-access-control.json rename to topics/security_access_control.json diff --git a/topics/server-memory.json b/topics/server_memory.json similarity index 100% rename from topics/server-memory.json rename to topics/server_memory.json diff --git a/topics/stored-procedures.json b/topics/stored_procedures.json similarity index 100% rename from topics/stored-procedures.json rename to topics/stored_procedures.json diff --git a/topics/string-functions.json b/topics/string_functions.json similarity index 100% rename from topics/string-functions.json rename to topics/string_functions.json diff --git a/topics/transactions-locking.json b/topics/transactions_locking.json similarity index 100% rename from topics/transactions-locking.json rename to topics/transactions_locking.json diff --git a/topics/window-functions.json b/topics/window_functions.json similarity index 100% rename from topics/window-functions.json rename to topics/window_functions.json From c14394e1f89b95b175aadadda1e83eb6dcbb263c Mon Sep 17 00:00:00 2001 From: Adrian Buckman <33764798+Adedba@users.noreply.github.com> Date: Sun, 29 Mar 2026 22:40:15 +0100 Subject: [PATCH 2/2] Github file validatio naction now fires on dev branch too --- .github/workflows/validate-content.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/validate-content.yml b/.github/workflows/validate-content.yml index d765754..a65d8ea 100644 --- a/.github/workflows/validate-content.yml +++ b/.github/workflows/validate-content.yml @@ -10,6 +10,7 @@ on: push: branches: - main + - dev paths: - 'topics/**/*.json' - 'manifest.json'