【GraphQL】Prismaを使って、PostgresSQLデータベースと接続する
GraphQL

【GraphQL】Prismaを使って、PostgresSQLデータベースと接続する

作成日:2021年11月19日
更新日:2021年11月25日

実際のデータベースを使って、GraphQL サーバーを操作します。

今回は、Prisma を使って、PostgresSQL データベースと接続します。

データベースのプラットフォームは、Heroku を使います。

コードは、前回のコードを使用します。

graphql-typescript

【GraphQL】GraphQLサーバーをTypeScriptへ変換する

Heroku のセットアップをする

まずは、Heroku に Postgres のセットアップを行います。

Heroku のアカウントを作成していない場合、作成しておきます。

Heroku にログインできたら、ダッシュボード右上の点が 9 つあるアイコンをクリックして、『Data』をクリックします。

image2

Heroku Postgres の『Create one』をクリックします。

image3

画面右側にある、『Install Heroku Postgres』をクリックします。

image4

App to probision to に、Heroku Postgres のアプリ名を作成します。

アプリ名を作成後、『Submit Order Form』をクリックします。

image5

これで、Heroku のセッティングが完了しました。

GraphQL サーバーに Prisma をセットアップする

次は、GraphQL サーバーに Prisma をセットアップします。

Prisma は、GraphQL と Postgres 間のデータベースの移行を合理化するために使用します。

ターミナルで、npm install prisma --save-devを実行します。

インストール完了後、ターミナルでnpx prisma initを実行します。

実行完了後、prisma フォルダの中に、shema.prisma ファイルが出来上がりました。

image6

shema.prisma の中身は、こちらです。

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

また、.env に、DATABASE_URL が追加されています。

DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"

.env の DATABASE_URL に Heroku の URL を入れることにより、shema.prisma の datasource db にある url が反映されます。

再度、Heroku を開き、作成したアプリの『Settings』をクリックします。

image7

『View Credentials...』をクリックします。

image8

URI の中にある、postgres から始まる URI をコピーします。

image9

.env の DATABASE_URL の postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public を削除し、先ほどコピーした URI を貼り付けます。

これで、GraphQL サーバーと Heroku の postgres を接続することができました。

次回は、GraphQL で Postgres データを取得します。

graphql-prisma-postgres-get

【GraphQL】Prismaを使って、PostgresSQLデータを取得する

© 2024あずきぱんウェブスタジオ