LoginSignup
0
0

とりあえずHasuraチュートリアルをDockerとcockroachDBでやる

Last updated at Posted at 2024-06-14

追記:https://qiita.com/nakamoto/items/dd805fa555f1f3a7c2fa

↑Hasuraを使うなら、cockroachDBではなく、Neonにしたほうが良いです↑

前提

  • HasuraチュートリアルをDockerとcockroachDBでやる日本語公式ページはない
  • Hasura日本語公式ページには、無料のHerokuを利用するチュートリアルがあるが、2024年現在Herokuは有料である
  • Windows環境で試した

見たページ

開始

手順

CockroachDBの準備

  1. https://www.cockroachlabs.com/ にアクセス
  2. 右上Startなんちゃらをクリックimage.png
  3. Googleアカウントでログインすると登録もできるimage.png
  4. 紫色のアイコンの形は見なかったことにする(わたしはずっとそうしてる)

VSCodeの準備

Dockerの準備

dockerファイルをダウンロードしてDocker上で実行するまで

  1. VSCodeのアイコンをダブルクリックしてVSCodeを起動しておく

  2. Docker Desktopを起動します。WindowsでもMacでもDockerのアイコンをダブルクリックすると起動できるんじゃないかと思います。

  3. マイドキュメントに開発フォルダを用意しておく。名前はDevとか開発フォルダとわかれば何でもよしっ。今回はDevに統一。

  4. Devフォルダの中に今回の学習用フォルダHasura-firstフォルダを作成

  5. VSCodeでHasura-firstフォルダを開く。開き方がわからない場合は、VSCode上で「Ctrl+@」を押してターミナルを表示させる

  6. ターミナルっていうのは映画でハッカーがカチャカチャやる画面みたいな、文字だけが表示される画面

  7. image.png

  8. そんなハッカー的な画面は開いた時は特段表示はほとんどなにもない状態。とりあえずターミナル上の何処かを適当にクリックして、先程作ったHasura-firstフォルダまでのパスをコピー&ペーストする。

  9. Hasura-firstまでのパスのパスって何?と思った人は、Hasura-firstフォルダを開いた状態で、フォルダ表示の上に有る次のような名前部分がパス。

  10. image.png

  11. ここをクリックするとご利用のPCの設定により次のような文字に変わるので適当にその文字全部をコピーする。

  12. C:\Users\abc\Documents\Dev\hasura-first

  13. VSCodeに戻りそんなほとんど何もない状態の画面で cd のあとにペーストすると、さっきコピーしたパスがペーストされる。つまり、次のような感じの内容を実行することになる

  14. cd C:\Users\abc\Documents\Dev\hasura-first

  15. 実行はEnterキーを押す

  16. curl https://raw.githubusercontent.com/hasura/graphql-engine/master/install-manifests/docker-compose-cockroach/docker-compose.yaml -o docker-compose.yaml

  17. すると docker-compose.yaml ファイルがダウンロードされる

  18. image.png

  19. VSCodeのターミナルの同じ場所で次のコマンドを実行します

  20. docker compose up -d

  21. するとDocker上に、これまでの操作で用意したdocker用のHasuraファイルが実行されます。

  22. Docker Desktop上には次のようにHasuraのプロジェクトが実行されている状態になります

  23. image.png

  24. もし、このへんまででちょっと難しいと思ったら、有料相談をご活用なさって下さい。

Hasuraを表示

  1. http://localhost:8080/ をクリックしてブラウザでHasuraを表示
  2. localhostというのは今見ている自分のPCを意味します
  3. :8000ってところは、日本語にすると:が「ポートの」という意味です。つまり、ポートの8000ってところを見に行ってます。
  4. ポートの8000っていうのは、住所で言うところの番地を意味します。あまり深く考えないで下さい。
  5. image.png
    これでHasuraを操作できます。

CockroachDBを Hasuraに接続します

  1. http://localhost:8080/console/data/v2/manage/connect にアクセス

  2. image.png

  3. CockroachDBを選択

  4. http://localhost:8080/console/remote-schemas/manage/add にアクセス

  5. CockroachDBの右上 Connect をクリック

  6. image.png

  7. こんな感じで選択した表示の

  8. この Copy をクリック
    1.image.png

  9. 使うのはこの部分から ?sslmode=verify-full を切り取った部分だけなので、メモ帳にコピーしたものを貼り付けてこの部分だけにする。内容は個人個人で少しづつ異なる。

  10. postgresql://〇〇:<ENTER-SQL-USER-PASSWORD>@〇〇-0000.6xw.aws-ap-southeast-1.cockroachlabs.cloud:12345/defaultdb?sslmode=verify-full

  11. postgresql://〇〇:<ENTER-SQL-USER-PASSWORD>@〇〇-0000.6xw.aws-ap-southeast-1.cockroachlabs.cloud:12345/defaultdb

  12. から ?sslmode=verify-full を切り取った残りの次のものを利用する

  13. postgresql://〇〇:<ENTER-SQL-USER-PASSWORD>@〇〇-0000.6xw.aws-ap-southeast-1.cockroachlabs.cloud:12345/defaultdb

  14. なお、 defaultdb は、CockroachDBで作成したデータベース名。

  15. そして、 <ENTER-SQL-USER-PASSWORD> 部分を自分のCockroachDBのパスワードに置き換える

  16. パスワードが 123456 の場合は次のようになる。

  17. postgresql://〇〇:123456@〇〇-0000.6xw.aws-ap-southeast-1.cockroachlabs.cloud:12345/defaultdb

  18. このパスワードを置き換えた文字列を再度コピーしておく

  19. http://localhost:8080/console/remote-schemas/manage/add を開く

  20. 先ほどコピーしたやつをGraphQL Service URLに貼り付けて右下の Connect をクリック

  21. image.png

  22. すると接続完了image.png

  23. ここまでで、CockroachDBとHasuraの接続ができた

  24. 補足として本当はenvironment variableで設定した方が良い。多分 .env 保存するんだろうけどドキュメント書いてあるところ分からなかったから保留image.png

dockerベースのURL

今回Dockerを利用しているので次のURLを参考にします

image.png

image.png

ここまで来ていながら

  • ここまで来ていながらHasuraはDockerじゃなくても良くね?っておもったので、そもそも登録していたHasuraにログイン

  • https://cloud.hasura.io/

  • 基本的な設定はこれまでと同様 DatabaseURL で、最後の ?sslmode=verify-full を削除して Connect しないと、 root certificate error になる点はHasuraWeb側でも同じなので注意。

  • なお、この削除する操作がわからず3時間は設定が止まってしまった

  • これ以降の操作は公式ページを見ると日本語で書いてある。なぜここまでは、公式ページを見ないのか思い出せたら思い出してみて。

  • https://hasura.io/learn/ja/graphql/hasura/data-modeling/

  • ご相談お気軽に

  • https://park.jp/service_menu/2491

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0