いよいよはじまりました!
Qiita Tech Festa
こんにちは、ElixirとPhoenixをこよなく愛する闘魂プログラマーです。
つまりAIプログラマーです。あっ、AIとは、Antonio Inokiさん、つまり猪木さんのことです。
本記事は、【あなたの】はじめてのMySQL への参加記事です。
次の2つの「はじめて」で書きます。
- MySQLをメインテーマにすえた記事をはじめて書く
- Phoenixアプリが使用するデータベースとしてMySQLをはじめて使う
もしかしたら、以前も書いたことあるかも ですし、やったことあるかも
です。あしからずご了承ください。覚えていないので、新鮮な気持ちで「はじめて」やります!
PhoenixのデフォルトDBはPostgreSQLです。そのことについては次の記事にしたためました。
闘魂Phoenix道場:PostgreSQLをDockerで立ち上げるッ!!!(devcontainer付き) Phoenixアプリから使わせていただく
この記事では、MySQLを使ってみたいと思います
私は学生や社会人にAWSを教える機会があります。その際に、Webアプリケーションの例としてWordPressを取り上げます。ですから、いつもMySQLにはお世話になっています。余談でした。
見出しが何だか、上から目線です。MySQL愛好家のみなさまごめんなさい
Phoenix のプロジェクトを作成する際に、使用するデータベースについて何も指定しないとPostgreSQLがデフォルトで選ばれます。
今回は、MySQLを選びます。自発的に、MySQLを選ぶわけです。
mix phx.new hello --database mysql
--database mysql
で、MySQLを指定するという格好です。
ドキュメントは、「mix phx.new – Options」です。
話の順番が前後しますが、Phoenixとは、Elixir製のすんごいWebアプリケーションフレームワークのことです。
新しいPCを新調するたびに、自分のローカルにMySQLを入れるのは面倒ですし、慎重派の私はDockerコンテナで立ち上げています。
docker run -d --rm -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_ROOT_PASSWORD= \
mysql
バージョン
2025/06/20現在、バージョンを指定しないと、「9.3.0 MySQL Community Server – GPL」が立ち上がっていました。
環境変数
MYSQL_ALLOW_EMPTY_PASSWORD
とMYSQL_ROOT_PASSWORD
には、config/dev.exs
にデータベースへの接続情報が以下のようにデフォルトで作られるのでそれにあわせています。「mysql – Environment Variables」の記述をChatGPTの協力のもと読み込んで環境変数をセットしました。
config/dev.exs
config :hello, Hello.Repo,
username: "root",
password: "",
hostname: "localhost",
database: "hello_dev",
stacktrace: true,
show_sensitive_data_on_connection_error: true,
pool_size: 10
CRUDを試す
mix phx.gen.live Accounts User users name:string age:integer
とやって、指示通りに、lib/hello_web/router.ex
を編集し、mix ecto.migrate
(マイグレーション)してから簡単なCRUD(Create/Read/Update/Delete)操作を試してみました。もちろん、動きます!
mix phx.gen.liveタスクについては、リンク先をご参照ください。簡単にざっくり言うと、データモデル、スキーマ、マイグレーションファイル、GUIをいい感じに作ってくれる足場をかためるコマンドです。
Phoenixアプリが使用するデータベースにMySQLをはじめて使ってみました。
もしかしたら、以前も書いたことあるかも ですし、やったことあるかも
です。あしからずご了承ください。覚えていないので、新鮮な気持ちで「はじめて」やりました!
【あなたの】はじめてのMySQLキャンペーンをきっかけに、Phoenixで組み合わせて使ってみようと思いました。
闘魂とは、己に打ち克つこと。そしてPhoenixアプリケーションの裏にMySQLあり。
元氣ですかーーーッ!!!
Views: 0