用途:为使用 Remix 开发 Shopify 应用的开发者提供 Prisma ORM 最佳实践,涵盖 schema 设计、迁移与性能优化。
主要能力与要点: 安装与初始化:npm install prisma --save-dev;npm install @prisma/client;npx prisma init。 配置:推荐 postgresql(Shopify 应用标准)或 mysql 提供者,可按需启用 previewFeatures,如 driverAdapters、metrics,生产建议使用稳定特性。 Remix 单例模式:开发环境 Remix 会重载服务器,若每次重载都新建 PrismaClient 会耗尽数据库连接,应在 app/db.server.ts 中导出全局单例 prisma,并在非生产环境挂到 globalThis。 Schema 设计:Shopify 的 Product ID、Order ID 超出 32 位整数,应使用 BigInt 作为 ID 类型(不需要数学运算时可用 String);多租户场景每个查询必须按 shop 过滤,并按 shop 建索引。 迁移:开发使用 npx prisma migrate dev --name init_tables;生产(CI/CD)使用 npx prisma migrate deploy;绝不在生产使用 prisma db push。 性能优化:只查询所需字段时使用 select;依赖写入使用 $transaction;在无服务器或高并发环境(如 Remix 部署在 Vercel/Fly)使用连接池工具(Supabase Pooler、PgBouncer 或 Prisma Accelerate)。 常用配方:用 upsert 实现创建或更新,适合 Webhook 数据同步。
适用场景:基于 Remix 的 Shopify 应用开发,涉及数据库 schema、迁移、多租户安全与性能调优。
限制:资料未提供具体版本兼容性、完整代码示例及定价信息;不得在生产执行 prisma db push。