LoginSignup
1
0

More than 3 years have passed since last update.

[Rails] DB設定と操作(mysql)、VSCodeでのRubocop、便利な拡張機能

Last updated at Posted at 2020-12-29

背景

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サービスを使った環境構築についても書いていきたいです。

最後に、参考にさせていただいた記事の投稿者の皆様、ありがとうございます。
私の記事に不備などありましたらご指摘いただけると幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0