プロジェクトの最後の部分で、prisma データベースを正しくデプロイできないようです。サイトは正常に構築され、サイトを表示できますが、データベースにアクセスしようとすると、次のメッセージが表示されます:
無効な prisma.product.findUnique() 呼び出し: テーブル main.Product は現在のデータベースに存在しません。
移行用のスキーマはあります:
リーリーrender.com でのビルド プロセス中に、次の内容が指定されます:
11 月 3 日 02:40:16 PM "@prisma/client" から { PrismaClient } をインポートします 11 月 3 日 02:40:16 PM const prisma = new PrismaClient() 11月3日午後2時40分16秒
11 月 3 日、午後 2 時 40 分 19 秒、server/database/schema.prisma から Prisma スキーマをロードします。 11 月 3 日、午後 2 時 40 分 19 秒 データ ソース "db": "file:./dev.db" にある SQLite データベース "dev.db" 11 月 3 日 02:40:19 PM
11 月 3 日 02:40:19 PM prisma/migrations で移行が見つかりませんでした 11 月 3 日 02:40:19 PM
11 月 3 日 02:40:19 PM
11 月 3 日 02:40:19 PM 保留中の転送はありません。
ビルド コマンドを設定しました:
npm インストール; prisma 生成 -- schema=./server/database/schema.prisma; prisma 移行展開 -- schema=./server/database/schema.prisma; npm ビルドを実行;
最新のコミットには移行ディレクトリがありませんでした
プロジェクトがビルドされると、移行用に構成した内容がプロジェクトに含まれますか?ビルド時に「--schema=...」は正しいディレクトリを指していますか?
私が試したこと: 全体的に、知識不足で試したことよりも問題が多かったです。
このプロジェクトの nuxt ビルド ファイルを見ると、ビルドされていないときとはまったく異なるファイル構造が生成されます。SQL データベースを dev.db にスケーリングする際のエラーを示している可能性がありますか?
また、SQL lite は本番環境には適していませんか?もしそうなら、どのような代替手段がより良いでしょうか?また、このデータベースを展開サーバーにインストールする方法は何ですか?
リーリーこの行は、接続するデータベースが見つかったことを示していますか? 全体として、スキーマで製品テーブルが提供されているにもかかわらず、なぜ製品テーブルが見つからないのか混乱しています。
全体的な質問は、ビルドされた nuxt アプリケーションがクエリ時にこのテーブルを認識しない原因は何でしょうか?
OP は、スキーマにリンクする前に移行を実行することで問題を解決しました。