Bird
Raised Fist0
NestJSframework~5 mins

Prisma migrations in NestJS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of Prisma migrations in a NestJS project?
Prisma migrations help manage and apply changes to the database schema in a safe and organized way. They keep the database structure in sync with your Prisma schema file.
Click to reveal answer
beginner
Which command creates a new migration file after updating the Prisma schema?
The command npx prisma migrate dev --name your_migration_name creates a new migration file and applies it to the database during development.
Click to reveal answer
intermediate
How does Prisma ensure migrations are applied in the correct order?
Prisma stores migration history in a special table in the database. It applies migrations sequentially based on this history to keep the database consistent.
Click to reveal answer
intermediate
What should you do before running migrations in a production environment?
You should review migration files carefully, back up your database, and run npx prisma migrate deploy to apply migrations safely without prompts.
Click to reveal answer
beginner
Why is it important to commit migration files to version control?
Committing migration files lets your team share database changes and ensures everyone applies the same schema updates, avoiding conflicts and errors.
Click to reveal answer
Which Prisma command applies migrations during development and updates the database?
Anpx prisma generate
Bnpx prisma migrate dev --name migration_name
Cnpx prisma studio
Dnpx prisma migrate deploy
Where does Prisma store the migration history to track applied migrations?
AIn a special table inside the database
BIn the Prisma schema file
CIn a JSON file in the project root
DIn environment variables
What is the recommended command to apply migrations in a production environment?
Anpx prisma migrate reset
Bnpx prisma migrate dev
Cnpx prisma migrate deploy
Dnpx prisma generate
Why should migration files be committed to version control?
ATo share schema changes with the team
BTo speed up the application runtime
CTo store database credentials
DTo generate Prisma client
What happens if you change the Prisma schema but do not create a migration?
AThe Prisma client will update automatically
BThe database will reset
CThe migration will be created automatically on app start
DThe database schema will not update
Explain the steps to create and apply a new Prisma migration in a NestJS project.
Think about how you change the schema and then update the database safely.
You got /5 concepts.
    Describe how Prisma migrations help keep your database consistent across different environments.
    Consider how migrations track and share changes to avoid conflicts.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Prisma migrations in a NestJS project?
      easy
      A. To optimize API response times
      B. To generate frontend UI components automatically
      C. To manage user authentication and sessions
      D. To keep the database schema in sync with the application code

      Solution

      1. Step 1: Understand Prisma migrations role

        Prisma migrations help update the database schema to match changes in your code models.
      2. Step 2: Compare options

        Options A, B, and C relate to performance, UI, and authentication, which are unrelated to migrations.
      3. Final Answer:

        To keep the database schema in sync with the application code -> Option D
      4. Quick Check:

        Prisma migrations = sync DB schema [OK]
      Hint: Migrations sync DB schema with code changes [OK]
      Common Mistakes:
      • Confusing migrations with frontend code generation
      • Thinking migrations handle user sessions
      • Assuming migrations optimize API speed
      2. Which command correctly creates a new migration during development with Prisma in NestJS?
      easy
      A. npx prisma migrate dev --name addUserTable
      B. npx prisma migrate deploy --name addUserTable
      C. npx prisma generate --name addUserTable
      D. npx prisma migrate reset --name addUserTable

      Solution

      1. Step 1: Identify the correct command for creating migrations

        The command npx prisma migrate dev --name is used to create and apply migrations during development.
      2. Step 2: Eliminate incorrect commands

        migrate deploy applies migrations in production, generate creates Prisma client code, and migrate reset resets the database.
      3. Final Answer:

        npx prisma migrate dev --name addUserTable -> Option A
      4. Quick Check:

        Dev migrations use migrate dev [OK]
      Hint: Use migrate dev to create migrations in development [OK]
      Common Mistakes:
      • Using migrate deploy instead of migrate dev for new migrations
      • Confusing generate with migration commands
      • Trying to reset DB when creating migrations
      3. Given the following Prisma schema change and migration command, what will happen?
      model User {
        id    Int    @id @default(autoincrement())
        email String @unique
        name  String?
      }
      
      // Command run:
      npx prisma migrate dev --name addNameField
      medium
      A. The database schema remains unchanged
      B. An error occurs because 'name' field is optional
      C. A migration file is created adding the optional 'name' field to User table
      D. The User table is deleted and recreated

      Solution

      1. Step 1: Analyze schema change

        The schema adds an optional 'name' field to the User model, which is a valid change.
      2. Step 2: Understand migrate dev behavior

        Running npx prisma migrate dev --name addNameField creates a migration file reflecting this change and applies it to the database.
      3. Final Answer:

        A migration file is created adding the optional 'name' field to User table -> Option C
      4. Quick Check:

        Optional field added = migration created [OK]
      Hint: Optional fields create migrations without errors [OK]
      Common Mistakes:
      • Thinking optional fields cause errors
      • Assuming schema stays unchanged without manual DB update
      • Believing migrate dev deletes tables
      4. You run npx prisma migrate deploy in production but get an error saying migrations are missing. What is the likely cause?
      medium
      A. You forgot to create migration files locally before deploying
      B. The database connection string is incorrect
      C. You ran migrate dev instead of migrate deploy
      D. Prisma client was not generated

      Solution

      1. Step 1: Understand migrate deploy requirements

        migrate deploy applies existing migration files to production; it does not create them.
      2. Step 2: Identify cause of missing migrations error

        If migration files were not created locally (e.g., with migrate dev), deploy will fail due to missing files.
      3. Final Answer:

        You forgot to create migration files locally before deploying -> Option A
      4. Quick Check:

        Deploy needs existing migrations [OK]
      Hint: Create migrations locally before deploying to production [OK]
      Common Mistakes:
      • Confusing migrate dev and migrate deploy roles
      • Ignoring missing migration files
      • Assuming wrong DB connection causes missing migrations error
      5. You want to add a new required field age Int to your User model in Prisma. However, your database already has existing users without this field. What is the best way to handle this migration safely?
      hard
      A. Delete all existing users before running migration
      B. Add the field as optional first, run a migration, then update data and make it required in a second migration
      C. Add the required field directly and run migrate dev once
      D. Skip migrations and manually update the database schema

      Solution

      1. Step 1: Understand required field impact

        Adding a required field means existing rows must have a value, or migration will fail.
      2. Step 2: Apply a two-step migration strategy

        First add the field as optional, migrate, update existing data with values, then change field to required and migrate again.
      3. Final Answer:

        Add the field as optional first, run a migration, then update data and make it required in a second migration -> Option B
      4. Quick Check:

        Two-step migration avoids missing data errors [OK]
      Hint: Add required fields in two steps to avoid errors [OK]
      Common Mistakes:
      • Adding required fields directly causing migration failure
      • Deleting data unnecessarily
      • Skipping migrations and editing DB manually
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard