0Pricing
Next.js 15 Fullstack (App Router + Server Actions) · レッスン

データベーススキーマのマイグレーション

Prisma Migrateを使ってデータベーススキーマの変更を管理し、開発とデプロイを円滑に進めます

「データベーススキーマのマイグレーション」はCoddyKit上の無料Next.js 15 Fullstack (App Router + Server Actions)レッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNext.js 15 Fullstack (App Router + Server Actions)学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Next.js 15 Fullstack (App Router + Server Actions)コースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

What are Database Migrations?

As your application evolves, so does its database structure, also known as its schema.

Database migrations are like version control for your database schema. They are a way to manage changes to your database structure in a controlled and trackable manner.

  • They ensure your database matches your application's needs.
  • They prevent data loss during schema changes.
  • They provide a clear history of all schema modifications.

Why Use Prisma Migrate?

Managing database schema changes manually can be complex and error-prone. Prisma Migrate simplifies this process significantly.

  • Automatic Generation: It generates SQL migration files based on changes in your Prisma schema.
  • History Tracking: It keeps a history of applied migrations, making rollbacks and team collaboration easier.
  • Environment Consistency: Ensures your development, staging, and production databases all have the correct schema.

Your Prisma Schema File

Prisma Migrate uses your schema.prisma file as the source of truth for your database schema. Any changes you want to make to your database structure start here.

Let's recall a basic schema.prisma setup:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  name  String
  posts Post[]
}

model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  published Boolean  @default(false)
  author    User     @relation(fields: [authorId], references: [id])
  authorId  Int
}

Initializing Your First Migration

When you first set up your Prisma schema, you'll want to create an initial migration to apply this schema to your database. You use the prisma migrate dev command for this.

This command does two main things:

  1. Generates a new migration file (SQL) in the prisma/migrations folder.
  2. Applies the migration to your database.
npx prisma migrate dev --name initial_setup

Understanding Migration Files

After running npx prisma migrate dev, Prisma creates a new folder inside prisma/migrations with a timestamp and the name you provided (e.g., 20231026123456_initial_setup).

Inside this folder, you'll find:

  • migration.sql: This file contains the raw SQL commands generated by Prisma to create or alter your database tables.
  • migration.js or migration.ts: (If using TypeScript/JavaScript) Metadata about the migration.

It's important to commit these files to your version control system!

Making Schema Changes

Now, let's say you want to add an email field to your User model. You simply update your schema.prisma file.

Prisma will detect this change and help you generate a new migration.

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique // Added new field
  posts Post[]
}

Generating a New Migration

After modifying your schema.prisma, run npx prisma migrate dev again. Prisma will compare your updated schema with the current database state and generate a new migration file.

It will then apply this new migration, adding the email column to your User table.

npx prisma migrate dev --name add_user_email

Applying Migrations in Production

For production environments, you typically use npx prisma migrate deploy. This command applies all pending migrations that have not yet been run on the database.

Unlike migrate dev, deploy does not generate new migration files; it only applies existing ones. This makes it safe and predictable for production deployments.

npx prisma migrate deploy

Checking Migration Status

To see which migrations have been applied to your database and which are pending, you can use the npx prisma migrate status command.

This is useful for debugging or ensuring your database is up-to-date with your application's expected schema.

npx prisma migrate status

Prisma Migrate Commands Quiz

Which of the following statements correctly describe the purpose of Prisma Migrate commands?

Recap: Schema Migrations

Great job! You've learned how to manage your database schema effectively using Prisma Migrate.

  • Prisma Migrate helps version control your database schema.
  • You define schema changes in schema.prisma.
  • npx prisma migrate dev creates and applies migrations in development.
  • npx prisma migrate deploy applies existing migrations in production.
  • npx prisma migrate status checks the current migration state.

This powerful tool ensures your database structure stays consistent and aligned with your application's needs as it grows.

よくある質問

「データベーススキーマのマイグレーション」レッスンは無料ですか?

はい。「データベーススキーマのマイグレーション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Next.js 15 Fullstack (App Router + Server Actions)コースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Next.js 15 Fullstack (App Router + Server Actions)コースには全4レッスンが含まれています。

「データベーススキーマのマイグレーション」で何を学びますか?

Prisma Migrateを使ってデータベーススキーマの変更を管理し、開発とデプロイを円滑に進めます ブラウザで直接実行するハンズオンコードでNext.js 15 Fullstack (App Router + Server Actions)を演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Next.js 15 Fullstack (App Router + Server Actions)を始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNext.js 15 Fullstack (App Router + Server Actions)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「データベーススキーマのマイグレーション」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNext.js 15 Fullstack (App Router + Server Actions)レッスンでコードを書いて実行できますか?

はい。すべてのNext.js 15 Fullstack (App Router + Server Actions)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Prisma ORMのセットアップ
  2. Server ActionsによるCRUD
  3. データベーススキーマのマイグレーション
  4. データベースのシードとコネクションプーリング
← Next.js 15 Fullstack (App Router + Server Actions)に戻る