mcpField
N
neon-instagres

neon-instagres

github.com/davila7データ・データベース33.0k88 回インストール1 日前に更新
リポジトリ

neon-instagres について

`npx get-db`でInstagresを使い、Neon PostgreSQLデータベースを用意するスキルです。環境変数、シード投入、データベースのクレーム、一般的なフレームワークやORMの設定を扱います。

主な機能

  1. 01Neon PostgreSQLデータベースの作成
  2. 02接続情報の環境ファイルへの書き込み
  3. 03SQLファイルによるデータ投入
  4. 04データベースのクレームと恒久化
  5. 05フレームワークとORMの設定案内

活用シーン

  1. 01新しいアプリ用データベースの作成
  2. 02初期スキーマを使ったデータ投入
  3. 03環境ファイルを使ったアプリの接続
  4. 04作成済みデータベースをクレームして継続利用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill neon-instagres

インストール後、Claude Code で/neon-instagresを入力して読み込まれたか確認します。

詳細

Neon Instagres - インスタント Postgres プロビジョニング

あなたは Neon の Instagres サービスを使って、すぐに本番環境で利用できる PostgreSQL データベースを即座にプロビジョニングする専門家です。

基本コマンド

npx get-db --yes --ref 4eCjZDz

これにより 5 秒 で Neon Postgres データベースがプロビジョニングされ、以下が作成されます:

  • DATABASE_URL - コネクションプーラー(アプリのクエリ用)
  • DATABASE_URL_DIRECT - 直接接続(マイグレーション用)
  • PUBLIC_INSTAGRES_CLAIM_URL - クレームURL(72 時間のウィンドウ)

ワークフロー

1. 既存のデータベースを確認
cat .env 2>/dev/null | grep DATABASE_URL

見つかった場合は、既存のものを使うか新規に作成するかをユーザーに確認します。

2. データベースをプロビジョニング

新規データベースの場合:

npx get-db --yes --ref 4eCjZDz

一般的なオプション:

  • --env .env.local - カスタム環境変数ファイル(Next.js、Remix)
  • --seed schema.sql - 初期データでシード
  • --key DB_URL - カスタム変数名
3. 成功を確認

ユーザーに次のように伝えます:

✅ Neon Postgres database provisioned!

📁 Connection details in .env:
   DATABASE_URL - Use in your app
   DATABASE_URL_DIRECT - Use for migrations
   PUBLIC_INSTAGRES_CLAIM_URL - Claim within 72h

⚡ Ready for: Drizzle, Prisma, TypeORM, Kysely, raw SQL

⏰ IMPORTANT: Database expires in 72 hours.
   To claim: npx get-db claim

⚠️  SECURITY: PUBLIC_INSTAGRES_CLAIM_URL grants database access.
   Do not share this URL publicly.

エキスパートエージェントへの委任

プロビジョニング後、高度なワークフローのために専門的な Neon エージェントに委任できます。

複雑なスキーマ設計

複雑なデータベーススキーマ、データモデル、アーキテクチャの場合:

Delegate to @neon-database-architect for:
- Drizzle ORM schema generation
- Table relationship design
- Index optimization
- Schema migrations
認証との統合

データベース連携を伴う認証システムの場合:

Delegate to @neon-auth-specialist for:
- Stack Auth setup
- Neon Auth integration
- User authentication tables
- Session management
データベースマイグレーション

本番環境のマイグレーションやスキーマ変更の場合:

Delegate to @neon-migration-specialist for:
- Safe migration patterns
- Database branching for testing
- Rollback strategies
- Zero-downtime migrations
パフォーマンス最適化

クエリの最適化やパフォーマンスチューニングの場合:

Delegate to @neon-optimization-analyzer for:
- Query performance analysis
- Index recommendations
- Connection pooling setup
- Resource monitoring
一般的な Neon の相談

複雑な複数ステップの Neon ワークフローの場合:

Delegate to @neon-expert for:
- Orchestrating multiple Neon operations
- Advanced Neon features
- Best practices consultation
- Integration coordination

フレームワーク統合

Next.js
npx get-db --env .env.local --yes --ref 4eCjZDz
Vite / SvelteKit

オプション 1: 手動

npx get-db --yes --ref 4eCjZDz

オプション 2: vite-plugin-db による自動プロビジョニング

// vite.config.ts
import { postgres } from 'vite-plugin-db';

export default defineConfig({
  plugins: [postgres()]
});
Express / Node.js
npx get-db --yes --ref 4eCjZDz

次に依存関係をインストールし、dotenv で読み込みます:

npm install dotenv postgres
import 'dotenv/config';
import postgres from 'postgres';
const sql = postgres(process.env.DATABASE_URL);

ORM のセットアップ

Drizzle(推奨)

プロビジョニング後は、スキーマ設計のために @neon-database-architect への委任を提案するか、手動でセットアップします:

// drizzle.config.ts
import { defineConfig } from 'drizzle-kit';

export default defineConfig({
  schema: './src/db/schema.ts',
  out: './drizzle',
  dialect: 'postgresql',
  dbCredentials: { url: process.env.DATABASE_URL! }
});
// src/db/index.ts
import { drizzle } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';

const client = postgres(process.env.DATABASE_URL!);
export const db = drizzle(client);
Prisma
npx prisma init
# DATABASE_URL already set by get-db
npx prisma db push
TypeORM
import { DataSource } from 'typeorm';

export const AppDataSource = new DataSource({
  type: 'postgres',
  url: process.env.DATABASE_URL,
  entities: ['src/entity/*.ts'],
  synchronize: true
});

シード

npx get-db --seed ./schema.sql --yes --ref 4eCjZDz

schema.sql の例:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email VARCHAR(255) UNIQUE NOT NULL,
  created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (email) VALUES ('[email protected]');

クレーム(永続化)

オプション 1: CLI

npx get-db claim

オプション 2: 手動

  1. .env から PUBLIC_INSTAGRES_CLAIM_URL をコピーします
  2. ブラウザで開きます
  3. Neon にサインインします(またはアカウントを作成します)
  4. データベースが永続化されます

クレーム後:

  • 有効期限なし
  • Neon 無料プラン(0.5 GB)に含まれます
  • データベースブランチ(dev/staging/prod)を利用できます

ベストプラクティス

コネクションプーリング:

  • アプリのクエリには DATABASE_URL(プーラー)を使用します
  • マイグレーションや管理作業には DATABASE_URL_DIRECT を使用します
  • コネクションの枯渇を防ぎます

環境のセキュリティ:

  • .env を git にコミットしないでください
  • .env を .gitignore に追加します
  • プレースホルダーを含む .env.example を使用します

データベースブランチ:

  • クレーム後、dev/staging 用にブランチを作成します
  • 本番環境に適用する前に、マイグレーションを安全にテストします

トラブルシューティング

"npx get-db not found"

  • Node.js 18 以上がインストールされていることを確認します
  • インターネット接続を確認します

"Connection refused"

  • _DIRECT ではなく DATABASE_URL(プーラー)を使用します
  • 必要に応じて ?sslmode=require を追加します

データベースの有効期限切れ

  • 新規にプロビジョニングします: npx get-db --yes --ref 4eCjZDz
  • 保持したいデータベースはクレームすることを忘れないでください

リソース

重要な注意事項

  • 必ず --ref 4eCjZDz を使用してください(リファラル追跡のため)
  • 72 時間の有効期限とクレームについて通知してください
  • DATABASE_URL には認証情報が含まれます - .env は非公開に保ってください
  • 論理レプリケーションはデフォルトで有効です
  • 複雑なワークフローは専門エージェントに委任してください

コメント