Prismaとは?
Prismaは、データベース接続ツール であり、データベースアクセスとスキーマ定義をシンプルにすることを目的としていて、TypeScriptやJavaScriptとシームレスに統合され、マルチデータベースサポートを提供している。クエリビルダーやデータモデル生成、マイグレーション機能などを備え、データセキュリティも重視している。Prismaを使うことで、安全で堅牢なデータベースアプリケーションを簡単に構築できる。
簡単にまとめると、DBを扱いやすくするツール
Prismaで悪戦苦闘
Next.jsでPrismaとmongodbを使おうと思ったとき、なかなか苦戦したので備忘録をここに残しておく。僕自身、まだまだ未熟者なのでかなり初歩的なことで躓いている。
何が起きたのか?
prismaで簡単にスキーマ(StringやIntやら型定義したやつ)を作成して、mongoDBにプッシュしようと思ったその時、、
The provided database string is invalid. An invalid argument was provided: Database must be
defined in the connection string in database URL. Please refer to the documentation in
https://www.prisma.io/docs/reference/database-reference/connection-urls for constructing a
correct connection string. In some cases, certain characters must be escaped. Please check the
string for any illegal characters.
何やらエラーが発生。色々調べた結果、.envファイルで使用していたmongoDBの接続URLが間違えていたのだ。具体的にどこが間違えていたのかを説明していく。
まず、mongoDB接続URLのフォーマットはこんな感じだ。
mongodb+srv://<username>:<password>@cluster0.--------.mongodb.net/<db-name>
僕はdb-nameをURL内に入れていなかったため、ずっと上記のエラーが出ていたのだ。さらに、db-nameすなわちデータベース名が永遠に分からずじまいでずっと苦戦していた。調べ上げた結果、db-nameは、デフォルトでtest
だ。実際、それをdb-nameに入れてみたところ上手くいった。では下記にまとめる。
mongoDB接続URLのDB名のデフォルトはtest`だ。忘れずに入れよう。
終わりに
改めて、かなり簡単なことで苦戦していることが身に染みて分かった。しかし最初の頃はプログラミングの右左もわからなかった。その頃と比べたらよい進歩だ。これからもプログラミングに精進したい。