0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

railsで新規アプリを作成した時にmysqlにし忘れた時の対処

Last updated at Posted at 2021-03-17

railsで新規アプリを作る際, -d mysqlをつけ忘れた!

deviseの導入をしている時にencodingをutf8にしようと思い
database.ymlを開くと「ん?なんかいつもと全然違うな」と感じました。
utf8mb4(?)だっけの記述も全くなくなぜだーと思っていると
databaseの指定をしておらずデフォルトの設定になっておりました。(-d mysqlのしわすれ)

普段は下記の書き方でやってます

% rails new -d mysql

このままアプリを消して新しく開発を始めるのはスマートじゃないので
ここからmysqlに指定しなおしていきましょう!
(mysqlを使いたいのはただ私がmysqlにしか慣れていないため)

手順1 gemfileの修正

まずgemfile内にsqlliteの記述があるのでそれを削除しました
削除した部分に新しくmysql2の記述を入れておきます

#gem 'sqlite3', '~> 1.3.6'
gem 'mysql2'

そしてbundle installでmysql2のgemを導入します

% bundle install

ここでmysqlを使いたいです宣言をして
mysqlとmysqlに必要なパッケージを丸ごとインストールした感じですよね

手順2 database.ymlを修正

次はrailsのデータベースの設定部分をいじっていきます
デフォルトのsqliteの記述を全て削除して
新たに下記を記述します。

config/database.yml
 default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  host: localhost

development:
  <<: *default
  database: eco-box_development 

test:
  <<: *default
  database: eco-box_test

production:
  <<: *default
  database: eco-box_production
  username: eco-box_app
  password: eco-box

今回の私のアプリでの設定ですので各自かえるところはかえてください
(データベースの名前とかパスワード、usernameとかですね)
というかここでデータベース本体の定義を行うんだなぁと改めて実感しました
今までrailsさんに自動でやってもらってましたからね

というわけで、ここで「mysqlを使ったデータベースはどんなのにしますか?」の注文表を
書いている感じですよね

手順3 データベース構築

では最後にデータベースをつくっていきましょう
ターミナルで下記のコマンドを入力

% rails db:create

エラーが出ずにdevelopmentとtestのデータベースが出来たら完成です!
お疲れ様でした

ここ違うよ!っていうところがあったらぜひコメントお願いします

0
1
1

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?