Hướng dẫn prisma mongodb enum - lăng kính mongodb enum
Cái này đang hoạt động! Tôi nghĩ rằng nó được bí mật giấu trong ____10, nhưng nếu không, bạn có thể truy cập nó bằng cách sử dụng const user = await prisma.user.create({ data: { id: 3, firstName: "Bob", lastName: "Alice", status: "Active", }, }) console.dir(user, { depth: Infinity })1 hoặc đợi cho đến const user = await prisma.user.create({ data: { id: 3, firstName: "Bob", lastName: "Alice", status: "Active", }, }) console.dir(user, { depth: Infinity })2. // This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema datasource db { provider = "mongodb" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" previewFeatures = ["mongodb"] } model User { id Int @id @map("_id") firstName String lastName String status Status @default(Active) } enum Status { Active Inactive } const user = await prisma.user.create({ data: { id: 3, firstName: "Bob", lastName: "Alice", status: "Active", }, }) console.dir(user, { depth: Infinity }) { id: 3, firstName: 'Bob', lastName: 'Alice', status: 'Active' } Vì vậy, tôi đã thực hiện lược đồ này trong trường hợp đầu tiên
Vậy thì tôi đã đẩy DB (PRISMA DB Push--preview-Feature) và sau đó tôi đã chèn một đối tượng như thế này:
Sau đó, tôi loại bỏ enum "Formacion3" khỏi Tipofichaje và đẩy lại (PRISMA DB PUSH) Như thế này:
Khi tôi cố gắng lấy dữ liệu với Prisma Studio ném lỗi này:
Câu hỏi của tôi là: Đó có phải là một hành vi bình thường? Ý tôi là nếu tôi di chuyển DB với những thay đổi mới không nên di chuyển sửa lỗi này? Làm thế nào tôi có thể sửa lỗi này? Vấn đềCác enum hiện ngăn chặn các giá trị nhất định được sử dụng, yêu cầu sử dụng const user = await prisma.user.create({ data: { id: 3, firstName: "Bob", lastName: "Alice", status: "Active", }, }) console.dir(user, { depth: Infinity })3 để phản ánh chính xác những gì thực sự được lưu trữ trong cơ sở dữ liệu. Điều này gây ra một vài vấn đề:
ví dụ: những điều sau đây hiện không được phép:
Lưu ý: Các định danh Enum có không gian nhúng cũng không được phép. Thay vào đó, họ yêu cầu sử dụng const user = await prisma.user.create({ data: { id: 3, firstName: "Bob", lastName: "Alice", status: "Active", }, }) console.dir(user, { depth: Infinity })4 như thế này:
Ngoài ra, vì PRISMA hiện không cung cấp một cơ chế được hỗ trợ để dịch giữa các giá trị enum được ánh xạ và định danh enum, đây là một lớp dịch khác phải được cung cấp. Giải pháp đề xuấtCho phép các enum prisma được xác định bằng cách sử dụng các tài liệu kép kèm theo nếu cần eg:
Điều này sẽ tránh được sự cần thiết phải sử dụng bất kỳ bản dịch nào khác của định danh cho giá trị. Tôi tưởng tượng rằng các kiến trúc sư Prisma đang bị hạn chế ở đây và muốn lấy 'mẫu số chung thấp nhất', do đó, nếu họ muốn thêm các trình tạo cho các ngôn ngữ khác, đặc biệt có những hạn chế tương tự như những gì Prisma hiện đang áp đặt. Có lẽ trong trường hợp đó, khi dự án được biết là chỉ cần tạo máy khách JavaScript/TypeScript, cần có một tùy chọn cấu hình có thể được đặt để chỉ ra việc thư giãn các hạn chế giá trị Enum, do những hạn chế đó sẽ không bao giờ gặp phải. Lựa chọn thay thếBối cảnh bổ sung |