Bug description
Using migrations from version 2.14, I updated an enum to add a few more values.
That generated the following migration.
-- AlterEnum
ALTER TYPE "account_type_enum" ADD VALUE 'Giving';
ALTER TYPE "account_type_enum" ADD VALUE 'Parent';
ALTER TYPE "account_type_enum" ADD VALUE 'Saving';
ALTER TYPE "account_type_enum" ADD VALUE 'Spending';
-- AlterTable
ALTER TABLE "account" ALTER COLUMN "type" SET DEFAULT E'Spending';
Unfortunately, when running this, I get the following error from Postgres.
Database error: Error querying the database: db error: ERROR: ALTER TYPE ... ADD cannot run inside a transaction block
0: sql_migration_connector::flavour::postgres::sql_schema_from_migration_history
at migration-engine/connectors/sql-migration-connector/src/flavour/postgres.rs:174
1: sql_migration_connector::sql_database_migration_inferrer::validate_migrations
at migration-engine/connectors/sql-migration-connector/src/sql_database_migration_inferrer.rs:89
2: migration_core::api::DiagnoseMigrationHistory
at migration-engine/core/src/api.rs:109
I can confirm that reducing the migration to a single ALTER TYPE solves the issue.
How to reproduce
- Use Postgres
- Create an enum
- Add multiple new values
- Generate a migration
- Run the migration
Expected behavior
New enum values should be added.
Environment & setup
- OS: Mac OS
- Database: PostgreSQL 11
- Node.js version: 4.15
- Prisma version:
@prisma/cli : 2.14.0
@prisma/client : 2.14.0
Current platform : darwin
Query Engine : query-engine 5d491261d382a2a5ffdc71de17072b0e409f1cc1 (at node_modules/@prisma/engines/query-engine-darwin)
Migration Engine : migration-engine-cli 5d491261d382a2a5ffdc71de17072b0e409f1cc1 (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine : introspection-core 5d491261d382a2a5ffdc71de17072b0e409f1cc1 (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary : prisma-fmt 5d491261d382a2a5ffdc71de17072b0e409f1cc1 (at node_modules/@prisma/engines/prisma-fmt-darwin)
Studio : 0.332.0
Bug description
Using migrations from version
2.14, I updated an enum to add a few more values.That generated the following migration.
Unfortunately, when running this, I get the following error from Postgres.
I can confirm that reducing the migration to a single
ALTER TYPEsolves the issue.How to reproduce
Expected behavior
New enum values should be added.
Environment & setup