Skip to content

Can't convert String field to Enum in a migration - Postgres #5893

@ericbiewener

Description

@ericbiewener

Bug description

I'm using Postgres. I originally created a String field in my prisma schema, but am now trying to convert it to an enum. When I run npx prisma migrate dev --preview-feature, I get this error:

Migration `20210227180413_create_enum_blob_types` failed to apply cleanly to a temporary database.
Error:
Database error: Error querying the database: db error: ERROR: column "type" cannot be cast automatically to type "BlobTypes"
HINT: You might need to specify "USING type::"BlobTypes"".
   0: sql_migration_connector::flavour::postgres::sql_schema_from_migration_history
             at migration-engine/connectors/sql-migration-connector/src/flavour/postgres.rs:192
   1: sql_migration_connector::sql_database_migration_inferrer::validate_migrations
             at migration-engine/connectors/sql-migration-connector/src/sql_database_migration_inferrer.rs:70
   2: migration_core::api::DevDiagnostic
             at migration-engine/core/src/api.rs:100

How to reproduce

  1. Generate a migration for a new model with a field that has a String type
  2. Generate a new migration that creates an enum and converts the field from the previous step to use that enum --> bug!

Expected behavior

No errors, field is converted to an enum

Prisma information

Original

model Blob {
  id        Int      @default(autoincrement()) @id
  type      String
  data      Json
}

New

model Blob {
  id        Int      @default(autoincrement()) @id
  type      BlobTypes
  data      Json
}

enum BlobTypes {
  NIGHTLY
}

Environment & setup

  • OS: Mac
  • Database: PostgreSQL
  • Node.js 14.15.1
  • Prisma version:
    (FYI I'm using npx when running migratrions)
prisma               : 2.16.1
@prisma/client       : 2.17.0
Current platform     : darwin
Query Engine         : query-engine 8b74ad57aaf2cc6c155f382a18a8e3ba95aceb03 (at node_modules/@prisma/engines/query-engine-darwin)
Migration Engine     : migration-engine-cli 8b74ad57aaf2cc6c155f382a18a8e3ba95aceb03 (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine : introspection-core 8b74ad57aaf2cc6c155f382a18a8e3ba95aceb03 (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary        : prisma-fmt 8b74ad57aaf2cc6c155f382a18a8e3ba95aceb03 (at node_modules/@prisma/engines/prisma-fmt-darwin)
Studio               : 0.346.0
Preview Features     : createMany

Metadata

Metadata

Assignees

Labels

bug/1-unconfirmedBug should have enough information for reproduction, but confirmation has not happened yet.kind/bugA reported bug.tech/engines/migration engineIssue in the Migration Engine

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions