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の記述を全て削除して
新たに下記を記述します。
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のデータベースが出来たら完成です!
お疲れ様でした
ここ違うよ!っていうところがあったらぜひコメントお願いします