質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

294閲覧

Railsアプリでテストデータベースのみ作成されない

stks56

総合スコア15

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/04/22 23:22

Rails x Docker環境で以下のエラーが発生しており、開発用データベースは作れるがテスト用データベースが作成されないという状況になってます。

環境
Ruby 2.4.0
Ruby on Rails 5.2.2
MySQL 5.7.25
Docker for Mac

エラーコード

$ docker-compose run --rm app rails db:create Starting estreak_mysql_1 ... done Database 'eStreak_development' already exists Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) Couldn't create 'eStreak_test' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) /usr/local/bundle/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect' /usr/local/bundle/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/mysql2_adapter.rb:22:in `new' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/mysql2_adapter.rb:22:in `mysql2_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:811:in `new_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:855:in `checkout_new_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:834:in `try_to_checkout_new_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:795:in `acquire_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:523:in `checkout' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:382:in `connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1014:in `retrieve_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:118:in `retrieve_connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:90:in `connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/mysql_database_tasks.rb:6:in `connection' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/mysql_database_tasks.rb:14:in `create' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:119:in `create' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:139:in `block in create_current' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:316:in `block in each_current_configuration' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each_current_configuration' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:138:in `create_current' /usr/local/bundle/gems/activerecord-5.2.3/lib/active_record/railties/databases.rake:29:in `block (2 levels) in <main>' /usr/local/bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' /usr/local/bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform' /usr/local/bundle/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke' /usr/local/bundle/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>' /usr/local/bundle/gems/bootsnap-1.4.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require' /usr/local/bundle/gems/bootsnap-1.4.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi' /usr/local/bundle/gems/bootsnap-1.4.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /usr/local/bundle/gems/bootsnap-1.4.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi' /usr/local/bundle/gems/bootsnap-1.4.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require' /usr/local/bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `block in require' /usr/local/bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency' /usr/local/bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require' /usr/src/eStreak/bin/rails:9:in `<top (required)>' /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load' /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call' /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call' /usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run' /usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>' /usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load' /usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>' /usr/src/eStreak/bin/spring:15:in `require' /usr/src/eStreak/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace)

エラー上ではDatabase 'eStreak_development' already existsとなっておりますがこちらは二度目以降のdb:createです、初回はcreatedと表示され作成されました。

試してみたこと

  • config/database.ymlの確認

developmen環境、test環境とも同じ設定を行っており、テストデータベースのみ作成される原因ではないと判断しました。

database.yml

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 port: 3306 5 pool: 5 6 timeout: 5000 7 url: <% ENV['DATABASE_URL']%> 8 username: root 9 password: 10 socket: /var/lib/mysql/mysql.sock 11 12development: 13 <<: *default 14 database: eStreak_development 15 16# Warning: The database defined as "test" will be erased and 17# re-generated from your development database when you run "rake". 18# Do not set this db to the same as development or production. 19test: 20 <<: *default 21 database: eStreak_test 22
  • ホストOS型開発環境(centos6)で実行

問題なく作成されました。

  • 別のrails newで別のrailsアプリを作り実行。

本件と同じでテストデータベースのみ作成されませんでした。

  • Dockerイメージ再ビルド

症状変わらず。

どなたかアドバイスをよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

テスト環境用のデータベースを作りたいなら db:create RAILS_ENV=test のように環境を指定する必要があるのではないでしょうか。

投稿2019/04/22 23:35

iwamot

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stks56

2019/04/23 10:59

db:create RAILS_ENV=test で解決しました。RAILS_ENVの知識が無いままDockerのチュートリアル通りにdocker-composeでRAILS_ENV: developmenntに指定していたのが問題だったみたいです;;ご回答ありがとうございました!
iwamot

2019/04/23 11:02

よかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問