Claude Code Plugins

Community-maintained marketplace

Feedback
0
0

MANDATORY before ANY database operation (tests, migrations, queries, seeders). Prevents catastrophic data loss. Based on 2 production database wipes.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name database-backup
description Backup database before tests, migrations, or other database operations

Database Backup

Core Principle

Create a backup before running any operation that could modify or destroy database data.

When to Use

Before running:

  • Tests (npm test, pytest, php artisan test)
  • Migrations (php artisan migrate, prisma migrate)
  • Seeders (php artisan db:seed)
  • Any destructive queries

Quick Start

# Create backup
./scripts/backup-database.sh

# Run tests with automatic backup
./scripts/safe-test.sh npm test

# Run migrations with automatic backup
./scripts/safe-migrate.sh php artisan migrate

# Restore if needed
./scripts/restore-database.sh --latest

Why This Matters

Real incidents that informed this practice:

  • Tests running against production database wiped 6 months of data
  • migrate:fresh in wrong terminal reset staging database

A backup takes seconds. Recovery without one can take hours or be impossible.

Protocol

Step 1: Check Your Database Connection

# Verify which database you're connected to
cat .env | grep DB_

If you see production credentials, stop and switch to a test database.

Step 2: Create Backup

./scripts/backup-database.sh

Or use the safe wrappers which backup automatically:

./scripts/safe-test.sh [your test command]
./scripts/safe-migrate.sh [your migration command]

Step 3: Run Your Operation

After backup is confirmed, proceed with your operation.

Step 4: Verify

If something went wrong:

./scripts/restore-database.sh --latest

Safety Scripts

Script Purpose
backup-database.sh Create timestamped backup
restore-database.sh Restore from backup
safe-test.sh Backup + run tests
safe-migrate.sh Backup + run migrations

See scripts/README.md for detailed usage.

Checklist

Before database operations:

  • Verified database connection (not production)
  • Created backup or using safe wrapper
  • Know how to restore if needed

Tips

  • Use .env.testing for test database configuration
  • Keep backups for at least a few days
  • Test your restore process occasionally
  • For production, use your hosting provider's backup features