-
Notifications
You must be signed in to change notification settings - Fork 0
Installation and Prerequisites
This page covers the tools, environment variables, and verification steps needed before running the migration utility.
Local execution is supported on macOS and Linux. Windows is not supported for the current local workflow because the project setup depends on Unix-oriented tooling such as brew, direnv, bash hooks, and unixODBC-based FreeTDS registration.
| Tool | Version | Purpose |
|---|---|---|
| Claude Code CLI | Latest | Agent runtime that executes all plugin commands |
| uv | Latest | Python package manager and runner used by every CLI tool |
| Python | 3.11+ | Runtime for shared library, MCP server, and CLI tools |
| gh CLI | Latest | GitHub operations (PRs, branch management, worktree cleanup) |
| git | 2.x+ | Version control; worktree support required for batch commands |
| Tool | Version | Purpose |
|---|---|---|
| FreeTDS | Latest | Open-source ODBC driver for SQL Server connectivity. Install: brew install freetds and ensure it is registered in unixODBC |
| Tool | When needed | Purpose |
|---|---|---|
genai-toolbox (toolbox) |
Live SQL Server extraction via /setup-ddl
|
HTTP-mode MCP server that bridges Claude Code to SQL Server |
SQLcl (sql) |
Oracle source projects | CLI tool that provides the Oracle MCP server via sql -mcp; requires Java 11+. The plugin launches Oracle via exec "${SQLCL_BIN:-sql}" -mcp, so SQLCL_BIN is the explicit override when SQLcl is not on PATH or another sql binary conflicts. |
| Java 11+ | Oracle source projects | Runtime required by SQLcl |
| direnv | Recommended for all projects | Auto-loads .envrc credentials when you enter the project directory; keeps secrets out of shell history |
If you want claude --plugin-dir . to load every bundled MCP server locally,
toolbox must already be on PATH, and Oracle must resolve through either
SQLCL_BIN or sql on PATH. Without them, the plugin manifest still
validates, but the corresponding mssql or oracle server will not start.
If Oracle MCP fails because sql cannot be found or the wrong sql binary is
picked up from PATH, set SQLCL_BIN to the SQLcl executable before launching
Claude Code.
The variables required depend on your source technology. The /init-ad-migration command scaffolds a .envrc with only the variables for the selected source. These bootstrap the first live connection; the canonical runtime contract is then persisted in manifest.json under runtime.source, runtime.target, and runtime.sandbox.
| Variable | Description | Example |
|---|---|---|
MSSQL_HOST |
SQL Server hostname or IP | localhost |
MSSQL_PORT |
SQL Server port | 1433 |
MSSQL_DB |
Configured source database that contains the runtime MigrationTest schema fixture |
AdventureWorks2022 |
SA_PASSWORD |
SQL login password | (from env) |
MSSQL_DRIVER |
(optional) ODBC driver override |
FreeTDS (default)
|
MSSQL_DRIVER defaults to FreeTDS. Set it to ODBC Driver 18 for SQL Server if you prefer the Microsoft driver (requires brew install msodbcsql18 with interactive EULA acceptance).
When using the default FreeTDS path, /init-ad-migration now verifies both the Homebrew package and the unixODBC driver registration. A plain brew install freetds is not considered sufficient if FreeTDS does not appear in odbcinst -q -d.
All four connection variables are required for /setup-ddl, /setup-sandbox, /generate-tests, /refactor, and any other live-database skill.
| Variable | Description | Example |
|---|---|---|
ORACLE_HOST |
Oracle hostname or IP | localhost |
ORACLE_PORT |
Oracle listener port | 1521 |
ORACLE_SERVICE |
Oracle service name | FREEPDB1 |
ORACLE_USER |
Oracle username | sh |
ORACLE_PASSWORD |
Oracle password | (from env) |
The /init-ad-migration command scaffolds a .envrc template containing only the variables for your selected source. Fill in your values and run:
direnv allowExport them in your shell before launching claude:
# SQL Server
export MSSQL_HOST=localhost
export MSSQL_PORT=1433
export MSSQL_DB=AdventureWorks2022
export SA_PASSWORD=<your-password>
# Oracle
export ORACLE_HOST=localhost
export ORACLE_PORT=1521
export ORACLE_SERVICE=FREEPDB1
export ORACLE_USER=sh
export ORACLE_PASSWORD=<your-password>The shared library depends on pydantic, sqlglot, and typer as its key runtime libraries. All Python dependencies (including transitive ones) are managed by uv and pinned in lib/pyproject.toml. Running uv sync in the lib directory installs everything needed.
Install from the Vibedata marketplace:
/plugin marketplace add accelerate-data/vibedata-plugins-official
/plugin install ad-migration@vibedata-plugins-officialAlternatively, for local development, load the plugin directly:
claude --plugin-dir .The ad-migration plugin provides all pipeline commands and skills in a single package.
Run the initialization command inside your Claude Code session:
/init-ad-migration
This prompts for source technology selection, then checks every prerequisite silently and presents a status display grouped by source. See Stage 1 Project Init for full details on the status display format and what each check covers.
Once verification passes, proceed to the Quickstart for a complete walkthrough.
Getting Started
Project Setup (run once)
Whole-Mart Migration
Per-Object Migration (repeat per table)
Commands and CLI
Exploring the Catalog
Operations
- Status Dashboard
- Deciding Data Domains for Migration
- Handling Diagnostic Errors and Warnings
- Browsing the Catalog
- Sandbox Operations
- Git Workflow
Reference
- Glossary
-
verifying-completion-claimsskill - Profiling Signals
- SQL Server Connection Variables
- Oracle Connection Variables
- Troubleshooting and Error Codes