motherduck-migrate-to-motherduck
About motherduck-migrate-to-motherduck
A skill for planning and executing scoped migrations to MotherDuck. It guides source and target assessment, SQL and model conversion, validation, phased cutover, and documentation of validated definitions.
Key features
- 01Inspect source and target context
- 02Choose ingestion and connection paths
- 03Inventory SQL and type incompatibilities
- 04Rebuild analytical models in DuckDB SQL
- 05Validate source against target
- 06Plan phased cutover and rollback
Use cases
- 01Assess a database migration to MotherDuck
- 02Port analytical SQL and data types
- 03Validate a migration before cutover
- 04Document target definitions for post-cutover use
MCP support
Uses an active remote or local MotherDuck MCP server to inspect the in-scope database when available. Without one, it relies on supplied schemas and assumptions rather than implying live validation.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ motherduckdb/ agent-skills --skill motherduck-migrate-to-motherduckAfter installing, type/motherduck-migrate-to-motherduckin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
artifacts/migration_validation_example.pymigration_validation_example.tsreferences/EXECUTION_REFERENCE.mdMIGRATION_PLAYBOOK.mdMIGRATION_VALIDATION.mdDetails
From the project READMEMigrate to MotherDuck
Start Here: Is a MotherDuck Server Active?
Use an active remote MotherDuck MCP server or local MotherDuck server to inspect the in-scope database, schema, grain, keys, and relevant metrics. Reuse known context and narrow discovery to the requested work; do not scan the whole workspace by default. Let the actual data model shape the result.
Resolve the target from the request or active context. Ask only if ambiguity materially affects the result. Without a server, use supplied schema and explicit assumptions for planning; do not imply live validation.
Migration Defaults
- native MotherDuck storage first
pg_duckdbwhen extending an existing PostgreSQL estate is the least disruptive path- validate before cutover
- port SQL dialect and data types deliberately before performance tuning
- phased cutover over big-bang replacement
- remote DuckDB database-file import (
CREATE DATABASE ... FROM 's3://...') when the source is already packaged in cloud storage - target environment (databases, roles, shares, service accounts) defined in Terraform when it must be recreated across dev, staging, and production
- secure views on Shares when the legacy warehouse enforced row access policies, column masking, or secure views; map each policy and test it as the affected consumer
- capture validated business definitions, join rules, and cutover caveats in Guides after the target model stabilizes
Workflow
- Inspect the available MotherDuck server or supplied source and target context.
- Classify the source system and the target serving pattern.
- Inspect the target-side MotherDuck layout if available.
- Pick the connection and ingestion path.
- Inventory incompatible SQL, functions, data types, and operational assumptions.
- Rebuild the analytical model in DuckDB SQL.
- Run source-vs-target validation.
- Create or update the relevant MotherDuck Guides so post-cutover agents use the validated target definitions.
- Cut over one workload at a time.
Match execution to the request: answer, review, or planning work returns the requested migration artifacts; build or change work executes only the requested in-scope migration slice and validates it. Require confirmation for cutover, destructive source changes, or external writes not already authorized.
When this skill produces a native DuckDB (md:) connection, watermark it with custom_user_agent=agent-skills/2.6.0(harness-<harness>;llm-<llm>). If metadata is missing, fall back to harness-unknown and llm-unknown.
Output
For a full engagement, cover the following as relevant to the request:
- the target pattern
- the migration sequence
- the validation plan
- the rollback path
- the first cutover slice
For explicit structured JSON requests, read the output contract. Otherwise use the format that fits the requested deliverable.
References
Read only the sections relevant to the task; these are guidance, not a mandatory itinerary.
references/MIGRATION_PLAYBOOK.md-- target-pattern selection, migration decision matrix, DuckLake posture, and source-specific questions (Snowflake, Redshift, Postgres, dbt, lakehouse)references/MIGRATION_VALIDATION.md-- copy-adaptable validation SQL (row counts, metrics withpct_variance, new/deleted/changed records) and a Python orchestrator
Examples
Read the execution reference only to run the bundled examples or reproduce their validation.
Related Skills
Load related skills only for missing capabilities; reuse established context.
motherduck-connect-- choose the connection path for the target systemmotherduck-explore-- inspect the target-side MotherDuck workspacemotherduck-load-data-- bulk movement and raw landing patternsmotherduck-model-data-- shape the target analytical modelmotherduck-query-- port and validate critical SQLmotherduck-ducklake-- only when open-table-format requirements are explicitmotherduck-manage-guides-- preserve validated target semantics and migration caveats