背景
Railsアプリで使用するDB設定(mysql)をまとめました。
また、VSCodeでのRubocop設定、その他便利な拡張機能をまとめました。
私の環境ではWindows上でVSCodeを使用し、WLS(Ubuntu)を操作しています。
WLSを使っている理由は、環境構築方法が Mac とかなり近いからです。
また、本記事はRailsのインストールができていることを前提とします。
下記に前提となるところの環境構築をまとめたので、参考にしていただければと思います。
[Rails] WindowsのWSL2(Ubuntu、VSCode)にRailsをローカルインストールしてgitコマンドでgithub(master)にpushする
DB設定(mysql)
① 下記コマンドを実施し、mysqlをインストールします。
sudo apt install mysql-server mysql-client
② 次に下記コマンドでmysqlのライブラリをインストールします。
sudo apt install libmysqlclient-dev
このライブラリをインストールしないと、後述するmysqlのgemをインストールするタイミングでエラーが出ます。
※ちなみにmysqlのgemをインストールする際は高頻度でエラーが発生するみたいです。
エラーが発生する原因は Mac、CentOS、Ubuntuなどで異なっていて、それぞれの解決方法があるみたいです。(Macではbundle configを設定するなどの解決方法)
③ インストールできたら下記コマンドで状態を確かめます。
sudo service mysql status
起動してなかったら起動します。
sudo service mysql start
④ mysqlにログインします。
sudo mysql -u root
⑤ mysqlの作業用ユーザーを作成し、権限設定します。
下記のユーザー名
ホスト名
パスワード
は変更してください。
ローカルにmysqlをインストールした場合ホスト名
はlocalhostで大丈夫です。
mysql> create user 'ユーザー名'@'ホスト名' identifid by 'パスワード';
mysql> grant all on *.* to 'ユーザー名'@'ホスト名';
⑥ /config/database.ymlを編集します。
下記は例です。username
password
を⑤で設定したものにしてください。
database
は作成したいデータベース名を任意で設定できます。
YAMLの注意点として、インデントにTabを使用しないこと、インデントを付けること、インデントはSpace2個単位でつけることです。
また、username
は@以降のホスト部分は付けません。
development:
adapter: mysql2
encoding: utf8
pool: 5
username: developer
password: 1234abcd
host: localhost
database: example_development
test:
adapter: mysql2
encoding: utf8
pool: 5
username: developer
password: 1234abcd
host: localhost
database: example_test
production:
adapter: mysql2
encoding: utf8
pool: 5
username: developer
password: 1234abcd
host: localhost
database: example_production
⑦ gemをインストールします。
下記をGemfieに追記します。
gem 'mysql2'
続いてインストール(もしくはアップデートのどちらでも)
bundle install
※mysql2のgemインストールはエラーが高頻度で発生するので、自分のOS、エラー内容に合わせた解決方法を探しましょう。
私の場合、②のライブラリインストールでエラーが解決できました。
⑦ 最後に、下記コマンドでデータベースを作成します。
bundle exec rails db:create
mysqlでDBが作成できていることを確認しましょう。
DB操作
下記の記事を参考に上記で作成したDBにテーブルを作成しました。
▼マイグレーションファイル作成まで (テーブル作成の準備)
・RailsでデータをDBに投入するActive Record [初心者向けチュートリアル]
・Rails テーブルのデータ型について
▼マイグレーション実行 (テーブル作成実行)
・RailsのMigrationに関する基本まとめ
▼テーブルの削除
Ruby on Rails 削除関連まとめ
また、RailsのORマッパーはデフォルトでActiveRecordが入っているので、ControllerからActiveRecordを使用してDB操作します。
Rubocopの導入
Rubocopとは、Rubyのリンター、フォマッターのことです。
▼下記手順でインストールして、format on saveが使えるようにします。
(本当はローカルインストールしてformat on saveしたかったのですが、私の場合はグローバルインストールでしかformat on saveできなかったため、グローバルインストールしています。)
① VSCode上で拡張機能 Rubyをインストールする。
② コマンドラインで下記を実施し、Rubocopをインストールします。
$ gem install rubocop
③ コマンドパレットからsettings.json
を開き、下記を追記します。
"ruby.lint": {
"rubocop": true
},
"[ruby]": {
"editor.formatOnSave": true
},
"ruby.format": "rubocop"
以上で、Rubyファイルのformat on saveが動きました。
上記で動かない場合もあるらしいのですが、その場合はsettings.json
に下記を追記し、VSCodeを再起動することで解決する可能性があります。
"editor.formatOnSaveTimeout": 5000,
その他便利な拡張機能
次の記事を参考にさせていただきました。
VSCodeの拡張機能でRailsと仲良くなる
私が入れたのは下記の拡張機能です。
・Rails
・Ruby On Rails
・endwise
・Rainbow End
・indent-rainbow
・Material Icon Theme
・Rails DB Schema
indent-rainbowはインデントの色が崩れる事がありますが、拡張機能を無効→再度有効化して直りました。
蛇足
今後はAWSサービスを使った環境構築についても書いていきたいです。
最後に、参考にさせていただいた記事の投稿者の皆様、ありがとうございます。
私の記事に不備などありましたらご指摘いただけると幸いです。