なぜ、MySQLに変更したのか
初めは、PostgreSQLを使用していましたが、私が作成しているアプリを見るとMySQLを使用している記事が多く、利用者も多くなっているのでニーズに合わせて変更しました。
MySQLとは
大容量のWebサイトや基幹業務システム、パッケージソフトウェアの構築にもっとも利用されているデータベースです。
私は、無料で高機能で誰でも扱いやすいデータベースという認識です。
環境
ruby 3.0.2
rails 6.1.4
Homebrew
本題へ
1, HomebrewでMysqlをインストールします。
brew update
brew install mysql
2, MySQLがインストールされているか確認します。
# mysqlを起動
mysql.server start
# mysqlにログイン
mysql -u root -p
ログインする際にパスワードを聞かれますが、まだ設定していないのでそのまま「Enterキー」でログインできます。
ログインできると、mysql>という表示なります。接続を抜ける場合は、exit;を入力してください。
3, MySQLにRailsプロジェクト用のユーザーを登録
今の段階ではrootユーザーしかないと思うので、Rails用のユーザーを作ってみましょう。以下のコマンドを実行してください。
# mysql>から以下のコマンドを実行
# 「sampleuser」と「password」というところを変えてください
create user sampleuser@'localhost' identified by 'password';
# 権限付与
grant all on *.* to sampleuser@'localhost';
4, 設定ファイル・Gemfileを変更
Gemfileとdatabase.ymlファイルを変更します。
# Gemfile
# gem 'sqlite3' # 削除
gem 'mysql2' # 挿入
# config/database.yml
# 適宜username,password,socket,databaseを先ほど設定したものに書き換えてください。
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: sampleuser
password: password
host: localhost
socket: /tmp/mysql.sock
development:
<<: *default
database: Sample_development
test:
<<: *default
database: Sample_test
production:
<<: *default
database: Sample_production
username: Sample
password: <%= ENV['Sample_PASSWORD'] %>
※こちらのファイルは、あくまで例なので使いたい環境に応じて変更して下さい。
その後bundle installを実行してください。
5, データベースを作成・テーブルを作成
# データベース作成
bundle exec rails db:create
# テーブル作成
bundle exec rails db:migrate
以上となります。
参考URL
https://shinmedia20.com/rails-db-mysql
反省
アプリ設計の段階で、どんな構成でどんな技術を使用するなどをあらかじめ決めておけば、途中から変更することなく進めていけたのではないかと思いました。
今後、作成するときは設計計画をきちんと決めてから作成しようと思いました。