View表示ができました!Mysqlエラー解決

  • このエントリーをはてなブックマークに追加

こんにちは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です。

なんかうまくできてなさそうですが、、、

とりあえず画面表示まで持っていくことができました!

画面ぐるぐる回すの楽しいです!

SNSでもご購読できます。

スポンサードリンク

コメントを残す

*