Open5

読者コミュニティ|【JWT 入門】 Golang で理解する JWT 認証(レイヤードアーキテクチャ + DDD で実装する)

かずまるかずまる

FarStep様
この度は、分かりやすい本の執筆ありがとうございます。
一点、本の内容でお伺いしたい点があるのですが
Chapter 07において、golang-migrateを使用してdbのマイグレーションを行う説明があるのですが、こちらの実行はコマンドプロント上で行ってるのでしょうか?
私の場合、そうだとするとローカルのpostgresを操作してしまい、docker上のdbを操作できなく存じ上げます。

FarStepFarStep

こんにちは。
ご質問頂きありがとうございます!

golang-migrate の実行場所について

下記のコマンドは、ローカル環境で実行しています(コンテナ内ではありません)。

$ migrate --path db/migrations --database 'postgresql://root:password@localhost:5432/mydb?sslmode=disable' -verbose up

--database の値は、docker-compose.yml で指定した値を反映したものとなっています。
上記コマンドを実行して、ローカルの PostgreSQL を操作してしまうということは、下記の値が今回立てたコンテナと全く同じ PostgreSQL が、ローカルで起動しているということでしょうか。

  • ユーザ名
  • パスワード
  • ホスト
  • ポート
  • データベース名

その場合には、ローカルの PostgreSQL を停止するか、上記の値を変えるかのどちらかを行う必要があります。簡単なのは、ローカルの PostgreSQL を停止する方ですね。

Docker コンテナは起動できていますでしょうか。

かずまるかずまる

FarStep様、素早いご返答ありがとうございます。
『ローカルの PostgreSQL を停止』
こちらの操作で無事、Docker上のdbでマイグレーションが成功しました。
本当にありがとうございます。
(はい、Dockerコンテナは起動してました◎)

FarStepFarStep

解決して良かったです!
コマンドの実行環境について下記のような説明を追加しました。

こういったコメントは非常に助かります。
今後ともよろしくお願いいたします。