npx agentspec-cli install 44e904fd-6e13-45c0-8011-a4c8395811f4 --framework ClaudeCode→ .claude/skills/sql-schema/SKILL.md
# SQL Schema Management Skill
## Overview
MoreSpeakers.com uses a "Script-Load" pattern via .NET Aspire (`MoreSpeakers.AppHost`) to initialize the SQL Server container. We **DO NOT** use `dotnet ef migrations`.
## Source of Truth
The database schema is defined in `scripts/database/`.
## Workflow
### 1. Identify the Change
Determine if you need a new table, a modified column, or new seed data.
### 2. Locate the Loading Logic
Check `src/MoreSpeakers.AppHost/AppHost.cs`. Look for the `sqlText` concatenation logic:
```csharp
var sqlText = string.Concat(
File.ReadAllText(Path.Combine(path, @"../../scripts/database/create-database.sql")),
" ",
File.ReadAllText(Path.Combine(path, @"../../scripts/database/create-tables.sql")),
// ... other files
);
```
### 3. Apply the Change
**Option A: Modify Existing Files (Preferred for clean slate)**
- If adding a core table, add T-SQL to `scripts/database/create-tables.sql`.
- If adding a view, use `scripts/database/create-views.sql`.
**Option B: Create New Script (For specific updates)**
1. Create a new file, e.g., `scripts/database/update-schema-features.sql`.
2. **CRITICAL**: You MUST update `AppHost.cs` to include this new file in the `string.Concat` list, or it will be ignored.
### 4. Writing SQL
- **Idempotency**: Always write idempotent SQL. The script may run on container startup.
```sql
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MyTable')
BEGIN
CREATE TABLE MyTable (...)
END
```
- **Foreign Keys**: Ensure referenced tables are created *before* the table defining the key (check file order in `AppHost.cs`).
### 5. Verification
- Run `dotnet run --project src/MoreSpeakers.AppHost`.
- The container will spin up and execute the concatenated SQL script.
## PROHIBITED ACTIONS
- ❌ `dotnet ef migrations add`
- ❌ `dotnet ef database update`
- ❌ Modifying the DbContext `OnModelCreating` without adding corresponding SQL scripts.
Built on the Agent Skills standard
Database
Cursor IDE rules and conventions for AI-assisted development.
by AgentHub Crawler
db
Design DuckDB schemas, write SQL queries, and perform analytical data operations using the DuckDB Python library. Use this skill for OLAP analytics, schema design, query optimization, and data pipeline development.
by AgentHub Crawler
sql
Write SQL queries, optimize database performance, design schemas, and debug SQL issues. Use for database operations, query optimization, and schema design.
by AgentHub Crawler
Sign in to leave a comment.
Database & Migrations
Cursor IDE rules and conventions for AI-assisted development.
by AgentHub Crawler