Skip to content
Back to skills

Sql To Osc

ASecurity

SQL to OSC (Online Schema Change) conversion expert for Flyway migration scripts. Use when: (1) Converting SQL migration files to OSC format, (2) User mentions "OSC", "轉換 OSC", "osc.txt", or "Online Schema Change", (3) Working with Flyway ALTER TABLE/CREATE INDEX statements that need OSC conversion.

  • 26 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 7, 2026
data-aisqldatabase

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add DennisLiuCk/claude-plugin-marketplace --skill sql-to-osc --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sql To Osc?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sql To Osc
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dennisliuck-sql-to-osc/badge)](https://www.skillsdirectory.com/skills/dennisliuck-sql-to-osc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sql-to-osc
description: |
  SQL to OSC (Online Schema Change) conversion expert for Flyway migration scripts.
  Use when: (1) Converting SQL migration files to OSC format, (2) User mentions "OSC", "轉換 OSC", "osc.txt", or "Online Schema Change", (3) Working with Flyway ALTER TABLE/CREATE INDEX statements that need OSC conversion.
---

# SQL to OSC Conversion Expert

Convert Flyway SQL migration scripts to OSC format following project conventions.

## Quick Reference

**OSC Format:** `{database}<TAB>{table}<TAB>{operations};`

| SQL | OSC |
|-----|-----|
| `USE db;` | Remove (db in column 1) |
| `ALTER TABLE tbl` | Remove (tbl in column 2) |
| `NULL` | `DEFAULT NULL` |
| `CREATE INDEX idx ON tbl (col)` | `ADD INDEX idx (col)` |
| `varchar` | `VARCHAR` |
| Multiple operations | Comma-joined, no space |

## Conversion Workflow

1. **Read source SQL** from `src/main/resources/db/migration/`
2. **Parse statements**: Extract database, table, operations
3. **Transform**:
   - Remove `USE` and `ALTER TABLE` wrappers
   - Convert `NULL` → `DEFAULT NULL`
   - Convert `CREATE INDEX...ON table` → `ADD INDEX...`
   - Uppercase data types
4. **Format output**: `{db}\t{table}\t{op1},{op2},...;`
5. **Write to** `src/main/resources/db/osc/osc-{YYYYMMDD}.txt` (e.g., `osc-20251212.txt`)

## Output Requirements

- **Encoding**: UTF-8 (no BOM)
- **Line ending**: LF (`\n`)
- **Separator**: TAB (`\t`) between columns
- **Operations**: Comma (`,`) joined, NO space after comma
- **Line ending**: Semicolon (`;`)

## Example

**Input** (`V1.0__alter_my_table.sql`):
```sql
USE mydb;

ALTER TABLE MY_TABLE
    ADD COLUMN NEW_COL bigint(20) NULL AFTER EXISTING_COL;

CREATE INDEX MY_TABLE_NEW_COL_IDX ON MY_TABLE (NEW_COL);
```

**Output** (`osc-{YYYYMMDD}.txt`):
```
mydb	MY_TABLE	ADD COLUMN NEW_COL BIGINT(20) DEFAULT NULL AFTER EXISTING_COL,ADD INDEX MY_TABLE_NEW_COL_IDX (NEW_COL);
```

## Conversion Summary Template

```
✓ 轉換完成

來源: {source_file}
輸出: src/main/resources/db/osc/osc-{YYYYMMDD}.txt

影響資料表: {tables}
操作統計:
  - ADD COLUMN: {count}
  - ADD INDEX: {count}
  - MODIFY COLUMN: {count}
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…