47ng / prisma-field-encryption

Transparent field-level encryption at rest for Prisma
https://github.com/franky47/prisma-field-encryption-sandbox
MIT License
223 stars 27 forks source link

Erroneous `rotation migrations are disabled` warning #99

Open troykelly opened 4 months ago

troykelly commented 4 months ago

Comment

There is an id/unique on the model, it's not just a single field. I can't see how to disable the warning or how to resolve it.

Error Text

[prisma-field-encryption] Warning: could not find a field to use to iterate over rows in model RetailerDistributor.
  Automatic encryption/decryption/key rotation migrations are disabled for this model.
  Read more: https://github.com/47ng/prisma-field-encryption#migrations

Relevant Schema

model RetailerDistributor {
  retailerId     String
  distributorId  String
  isActive       Boolean     @default(true)
  authJsonString String? /// @encrypted
  retailer       Retailer    @relation(fields: [retailerId], references: [id])
  distributor    Distributor @relation(fields: [distributorId], references: [id])
  createdAt      DateTime    @default(now())
  updatedAt      DateTime    @updatedAt

  @@id([retailerId, distributorId])
}
franky47 commented 4 months ago

If you follow the link in the error, you'll see in the documentation that:

Note: Compound @@id primary keys are not supported.

Would you like to open a PR to add support?

Otherwise, an immediate solution would be to add a @unique auto-incrementing integer column to act as the cursor.

troykelly commented 4 months ago

Apologies, I did spend some time in the documentation, and I missed it.