こんにちはRyujiです。
Tech::Expertもあと数日です。あっという間の2ヶ月でした!
ラストも突っ走っていきます!
今日は先日から復活させようとしているThreesessionを進めていきます。
Mysql2::Error::ConnectionError
rails sをすると、まずはこのエラー
Access denied for user 'dev_user'@'localhost' (using password: YES)
Access deniedとあるので、mysqlにアクセスできない。つまりdatabase.ymlを見ていきましょう!
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: mysql2
encoding: utf8
reconnect: false
host: localhost
pool: 5
timeout: 5000
socket: /tmp/mysql.sock
development:
<<: *default
username: dev_user
password: password
database: threesession_development
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
username: test_user
password: password
database: threesession_test
production:
<<: *default
username: pro_user
password: password
database: threesession_production
あ〜脆弱性になりそうな記述ばっかりですね!
まずパスワードを書いているのはよくありませんし、不要なコメントもあります。
早速直しましょう。
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
development:
<<: *default
database: threesession_development
test:
<<: *default
database: threesession_test
production:
<<: *default
database: threesession_production
username: root
password: <%= ENV['DATABASE_PASSWORD'] %>
socket: /var/lib/mysql/mysql.sock
<%= ENV[‘DATABASE_PASSWORD’] %>で環境変数の値を取ってくることができます。
ActiveRecord::NoDatabaseError
次はこのエラーになりました。
これはUnknown database、つまり、データベースが見つからない。
rake db:create & rake db:migrateでデータベースを作ります。
StandardError: An error has occurred, all later migrations canceled:
Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
class CreateUsers < ActiveRecord::Migration[4.2]
/Users/ratovia/workspace/threesession/db/migrate/20160830110633_create_users.rb:1:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
見たことないエラー出てきました!
rails 5になってからmigrationファイルにはどのバージョンで作成したかを記録するようになっていて、
# before
class CreateUsers < ActiveRecord::Migration
# after
class CreateUsers < ActiveRecord::Migration[4.2]
と修正しないといけないようです。
無事migrationすることができました!
早速rails sです。
なんかうまくできてなさそうですが、、、
とりあえず画面表示まで持っていくことができました!
画面ぐるぐる回すの楽しいです!