Modern CI/CD best practices for SQL Server database development with tSQLt, state-based deployment, and 2025 patterns
View on GitHubJosiahSiegel/claude-plugin-marketplace
ssdt-master
plugins/ssdt-master/skills/ssdt-cicd-best-practices-2025/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/JosiahSiegel/claude-plugin-marketplace/blob/main/plugins/ssdt-master/skills/ssdt-cicd-best-practices-2025/SKILL.md -a claude-code --skill ssdt-cicd-best-practices-2025Installation paths:
.claude/skills/ssdt-cicd-best-practices-2025/## ๐จ CRITICAL GUIDELINES ### Windows File Path Requirements **MANDATORY: Always Use Backslashes on Windows for File Paths** When using Edit or Write tools on Windows, you MUST use backslashes (`\`) in file paths, NOT forward slashes (`/`). **Examples:** - โ WRONG: `D:/repos/project/file.tsx` - โ CORRECT: `D:\repos\project\file.tsx` This applies to: - Edit tool file_path parameter - Write tool file_path parameter - All file operations on Windows systems ### Documentation Guidelines **NEVER create new documentation files unless explicitly requested by the user.** - **Priority**: Update existing README.md files rather than creating new documentation - **Repository cleanliness**: Keep repository root clean - only README.md unless user requests otherwise - **Style**: Documentation should be concise, direct, and professional - avoid AI-generated tone - **User preference**: Only create additional .md files when user specifically asks for documentation --- # SSDT CI/CD Best Practices 2025 ## Overview This skill provides comprehensive guidance on implementing modern CI/CD pipelines for SQL Server database projects using SSDT, SqlPackage, and contemporary DevOps practices. ## Key Principles (2025 Recommended Approach) ### 1. State-Based Deployment (Recommended) **Definition**: Source code represents the current database state, not migration scripts. **How it Works**: - All database objects (tables, procedures, views, functions) stored in separate .sql files - SqlPackage automatically generates incremental deployment scripts - Declarative approach: "This is what the database should look like" - SSDT compares source to target and calculates differences **Advantages**: - Easier to maintain and understand - No risk of missing migration scripts - Git history shows complete object definitions - Branching and merging simplified - Rollback by redeploying previous version **Implementation**: ```yaml # GitHub Actions example - name: Build DACPAC (State-Based) run