土曜日, 6月 21, 2025
- Advertisment -
ホームニューステックニュース闘魂Phoenix道場:MySQLをDockerで立ち上げるッ!!! Phoenixアプリから使わせていただく #Elixir - Qiita

闘魂Phoenix道場:MySQLをDockerで立ち上げるッ!!! Phoenixアプリから使わせていただく #Elixir – Qiita



闘魂Phoenix道場:MySQLをDockerで立ち上げるッ!!! Phoenixアプリから使わせていただく #Elixir - Qiita

いよいよはじまりました!
Qiita Tech Festa :tada::tada::tada:

こんにちは、ElixirとPhoenixをこよなく愛する闘魂プログラマーです。
つまりAIプログラマーです。あっ、AIとは、Antonio Inokiさん、つまり猪木さんのことです。

本記事は、【あなたの】はじめてのMySQL への参加記事です。

次の2つの「はじめて」で書きます。

  • MySQLをメインテーマにすえた記事をはじめて書く
  • Phoenixアプリが使用するデータベースとしてMySQLをはじめて使う

もしかしたら、以前も書いたことあるかも :interrobang: ですし、やったことあるかも :interrobang: です。あしからずご了承ください。覚えていないので、新鮮な気持ちで「はじめて」やります!

PhoenixのデフォルトDBはPostgreSQLです。そのことについては次の記事にしたためました。

闘魂Phoenix道場:PostgreSQLをDockerで立ち上げるッ!!!(devcontainer付き) Phoenixアプリから使わせていただく

この記事では、MySQLを使ってみたいと思います :qiitan:
私は学生や社会人にAWSを教える機会があります。その際に、Webアプリケーションの例としてWordPressを取り上げます。ですから、いつもMySQLにはお世話になっています。余談でした。

見出しが何だか、上から目線です。MySQL愛好家のみなさまごめんなさい :pray::pray::pray:

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_PASSWORDMYSQL_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をはじめて使ってみました。
もしかしたら、以前も書いたことあるかも :interrobang: ですし、やったことあるかも :interrobang: です。あしからずご了承ください。覚えていないので、新鮮な気持ちで「はじめて」やりました!

【あなたの】はじめてのMySQLキャンペーンをきっかけに、Phoenixで組み合わせて使ってみようと思いました。

闘魂とは、己に打ち克つこと。そしてPhoenixアプリケーションの裏にMySQLあり。

元氣ですかーーーッ!!!





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -