データベース統合
Nextyの自動データベース適応により、環境変数DATABASE_URL
を1つ設定するだけで、ボイラープレートがランタイムプラットフォーム(Vercel/Netlify/Server)とデータベースプロバイダー(Supabase/Neon/セルフホスト)に基づいて最適な接続パラメーターを自動選択します。
- 必須の環境変数は1つのみ:
DATABASE_URL
- 内蔵ツール: Drizzle ORM + drizzle-kit(migration/push/studio)とシードデータスクリプト
- 自動最適化:
- サーバーレス(Vercel/Netlify/Lambda)は制限を回避するため単一接続に自動的に削減されます
- Supabase/Neonは自動的にSSLが有効化されます
- Neon + Vercelは互換性問題を回避するためprepared statementが自動的に無効化されます
Supabaseの使用
データベースの作成
Supabaseのウェブサイトにアクセスしてアカウントを登録します。カスタムドメインメールで登録したい場合は、まずResend統合とドメインメール設定を完了してください。
New Project
をクリックして新しいプロジェクトを作成します

この手順で入力するパスワードを覚えておいてください

環境変数を.env
または.env.local
ファイルに設定します


[YOUR-PASSWORD]
を前の手順で入力したパスワードに置き換えてください。
データベースの初期化
次のコマンドでデータベースを初期化してシードデータを投入します:
# データベースを初期化
npm run db:migrate
# 料金プランのサンプルシードデータをインポート
npm run db:seed
完了後、Supabaseで完全なデータテーブルが表示されます。

Neonの使用
データベースの作成
Neonのウェブサイトにアクセスしてアカウントを登録します。カスタムドメインメールで登録したい場合は、まずResend統合とドメインメール設定を完了してください。
Create Project
をクリックして新しいプロジェクトを作成します


環境変数を.env
または.env.local
ファイルに設定します


データベースの初期化
次のコマンドでデータベースを初期化してシードデータを投入します:
# データベースを初期化
npm run db:migrate
# 料金プランのサンプルシードデータをインポート
npm run db:seed
完了後、Supabaseで完全なデータテーブルが表示されます。

データベーススキーマの更新
package.json
には一般的に使用されるデータベース操作コマンドがいくつか提供されています。
新機能を開発する際に、新しいテーブルを作成したり既存のテーブルを拡張したりする必要がある場合は、以下の手順に従ってください:
lib/db/schema.ts
でデータベーススキーマを更新しますnpm run db:generate
コマンドを実行してmigrationファイルを自動生成しますnpm run db:migrate
コマンドを実行してmigrationファイルをデータベースに適用します
セルフホストのPostgresを使用している場合は、npm run db:studio
を実行してビジュアル化インターフェースを開くことができます。
package.json
で提供されているコマンドの中には、"db:push": "drizzle-kit push"
もあります。npm run db:push
を実行すると、migrationファイルを生成せずに直接データベースを更新します。これは標準的な手法ではなく、一般的には推奨されません。
カスタムDrizzle設定
Nextyボイラープレートには、デプロイプラットフォームとデータベースプロバイダーに基づいてDrizzle設定を自動的に作成する機能があります。自動設定ファイルはlib/db/config.ts
にあります。ランタイム環境はVercel、Netlify、Lambda、サーバー環境の検出をサポートしています。データベースプロバイダーはSupabase、Neon、AWS RDS、GCP SQL、セルフホストPostgresをサポートしています。
あなたのランタイム環境またはデータベースプロバイダーがこれらに含まれていない場合は、lib/db/config.ts
で簡単に拡張できます。
プロジェクトをサーバーにデプロイする場合は、サーバーのCPUとメモリに基づいて最大接続数max
値を変更できます。Postgresをセルフホストしていたり、特定のコンプライアンス要件がある場合は、パラメーターをオーバーライドすることもできます。