PrismaでMySQLを利用して開始するときにエラーが発生する場合


Start from scratchの手順通りに進めて、以下の手順でP3014 P1010エラーが発生する場合
npx prisma migrate dev --name init

Error: P3014

Prisma Migrate could not create the shadow database. 
Please make sure the database user has permission to create databases. 
More info: https://pris.ly/d/migrate-shadow. Original error: Error code: P1010

とりあえず、DBのUSERに対して以下の権限を与えれば問題は出なくなる
grant all on *.* to {DB_USER}

詳細な理屈はエラーのリンクを含めて理解が必要(だがわかりにくかった)

  1. Shadow databaseを作成する必要があるので、DBのUSERにcreate database権限が必要
  2. さらに上記Databaseを閲覧する権限も必要
  3. Databaseの名前はMigration_xxxxx(xxxxx部分はランダム文字列)みたいな名前だったので、
    固定のデータベース名だけ権限を与える感じではうまくいかなさそう
  4. 実運用ではMigration専用の強いユーザーを用意し、権限もより適切に付与するべき

Frourioを始めようと思って思わぬところでつまづいた