はしばみあきら blog

プログラミングアウトプットするブログ。202010スタート

【Rails】【MySQL】rails newでDBをmysqlで始める流れ

しばしブログ更新が開きました
最近Reactばかり触って更新するネタがなかったと言う...

Reactのバック側処理としてRailsを使うため、久しぶりにRalisを触ったら沼ったので書き留めておきます

rails newでDBをmysqlで始める流れ

  • Homebrew導入
  • MySQL導入
  • Rails new でDBにMySQLを設定
  • database.ymlに必要な情報を記述

導入している部分は適所飛ばしてください

MySQLを導入

HomebrewでMySQLを導入しますが、RailsをしていればHomebrewは導入してあると思うので、ここは省きます

MySQLの導入はこちらが参考になるかと思います
Mac へ MySQL を Homebrew でインストールする手順

MySQLでは、ユーザー名とパスワードでDB群にアクセスできるみたいです(調べてはいないので変なこと言ってたらすみません)

% mysql -u root -p

-uはユーザー名の指定、-pはパスワードの指定です

最初はおそらくユーザー名はrootになっているはずなので、ユーザー名はroot

パスワードを求められるので設定したものを入力しましょう

ターミナルに色々でてきて、表示が mysql> になっていればOKです

f:id:hashibamiakira:20201206225131p:plain

まずはデータベースがあるか確認します

mysql> show databases;

作ったばかりだとおそらく4つしかないかと思います

最初からあるDBは重要なものなので消さないようにしましょう

自分の場合はこんな感じです

f:id:hashibamiakira:20201206225746p:plain

DBを作成します

mysql> create database 名前;

名前には作ろうとするアプリの名前などを入れておくとわかりやすくていいかと思います

DBができたらRailsでアプリを作ります

Rails new でMySQLを設定

アプリケーションを作るディレクトリでrails newを行います

$ rails new 名前 -d mysql

-d はデータベースの指定です
mysqlとすることで、DBはそれを使う設定で作られます

必要な情報を記述していく

テキストエディタでconfig/database.ymlを開きます

defaultはmysql2を使うようになっているかと思います

defaultのusernameはroot(もし任意の名前にしてあるのであればそちら)にして、passwordは設定したパスワードを入力しておきます

今回開発環境(development)とtestでDBを使うので、この2つのdatabaseの名前を、mysqlで作ったDBの名前にします

自分はreactとrailsを組み合わせるテストをするために、react-railsと言う名前のDBを作ってあります

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password:
  host: localhost

development:
  <<: *default
  database: react-rails

test:
  <<: *default
  database: react-rails

もしもGithubにpushするなら

開発段階で第三者に見られてもOKならこれでいいですが、本番環境では悪意のあるユーザーから不正にアクセスされるかもしれません

DBの情報(ユーザーネームやパスワード)は隠しファイルにしておいた方が良いです
(隠しファイルにしておいた方が良いものをそのままgitに上げると確認のメールが来るらしい)

環境変数についてはこちらがわかりやすいです
【Rails】dotenv-railsの導入方法と使い方を理解して環境変数を管理しよう!

今回はrailsのDBをMySQLで始める方法で沼ったので書き残しておきます

またボチボチ更新していきます