HarukiIdo / go-techblog

個人用テックブログサイト
0 stars 0 forks source link

go-techblog

概要

個人用の技術系プログサイト

動機

学んだ技術の陳腐化を防ぐため、QiitaやZennなどのブログサイトに技術的なアウトプットをしたかったが、敷居が高く重い腰が上がらなかったため、気軽にアウトプットできる環境が欲しかった

技術的な挑戦や工夫した点

課題

TODO

開発してみて

使用技術

フロントエンド:HTML,CSS,JavaScript
バックエンド:Go, sqlx, air
フレームワーク:Echo
DB:DockerのMySQLコンテナ、本番環境はClearDB(MySQL)
開発環境構築:Docker, Docker Compose
インフラ:Heroku

DBマイグーイション(golang-migrate/migrate)

GitHubリポジトリ

ファイルの作成

migrate create -ext sql -dir YOUR_DATABASE_DIRECTORY -seq YOUR_FILE_NAME

ex

migrate create -ext sql -dir db/migrations -seq create_aritcle

マイグレーションの実行

環境依存情報の設定

export MYSQL_URL="mysql://go_user:password@tcp(127.0.0.1:3306)/go_db?multiStatements=true"

マイグレーションファイルの作成

migrate create -ext sql -dir db/migrations -seq create_articles_table

マイグレーションの実行

migrate -database ${MYSQL_URL} -path=db/migrations/ up 1

実行

docker compose up -d

停止

docker compose down

コンテナで立ち上げたMySQLに接続する

docker exec -it コンテナ名 bash

ホストはlocalhostと指定するとローカルマシンのmysqlソケットを探しに行くのでエラーになるので、127.0.0.1ホストを指定

mysql -u 127.0.0.1 -P 3306 -u ユーザ名 -p