環境
ruby 2.6.3
rails 5.2.3
postgres 10.7
をdocker-composeで。
現象が起こる前後で発生していた変更
developmentのデータの中身をAWSから本番のdumpデータを取り込むように変更があった。 それまでは初期状態では都道府県や市町村あたりのマスターデータがある以外は各自でやっていた。
発生したこと
1. テストを実行できない
# bundle exec rspec ( 略 ) # --- Caused by: --- # PG::ConnectionBad: # FATAL: database "ticket_test" does not exist # /bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize' An error occurred while loading ./spec/validators/not_future_date_validator_spec.rb. Failure/Error: ActiveRecord::Migration.maintain_test_schema! ActiveRecord::NoDatabaseError: FATAL: database "ticket_test" does not exist
2. rails db:create
もできない
# bin/rails db:create RAILS_ENV=test PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template. : CREATE DATABASE "ticket_development" ENCODING = 'unicode' Couldn't create 'ticket_development' database. Please check your configuration. rails aborted! ActiveRecord::StatementInvalid: PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template. : CREATE DATABASE "ticket_development" ENCODING = 'unicode' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' /bundle/gems/activesupport-5.2.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log' /bundle/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/schema_statements.rb:46:in `create_database' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/postgresql_database_tasks.rb:21:in `create' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:119:in `create' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:139:in `block in create_current' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:316:in `block in each_current_configuration' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each_current_configuration' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:138:in `create_current' /bundle/gems/activerecord-5.2.3/lib/active_record/railties/databases.rake:29:in `block (2 levels) in <main>' /bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' /bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform' /bundle/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke' /bundle/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `block in require' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require' bin/rails:4:in `<main>' Caused by: PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template. /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `async_exec' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' /bundle/gems/activesupport-5.2.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log' /bundle/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute' /bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/postgresql/schema_statements.rb:46:in `create_database' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/postgresql_database_tasks.rb:21:in `create' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:119:in `create' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:139:in `block in create_current' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:316:in `block in each_current_configuration' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:313:in `each_current_configuration' /bundle/gems/activerecord-5.2.3/lib/active_record/tasks/database_tasks.rb:138:in `create_current' /bundle/gems/activerecord-5.2.3/lib/active_record/railties/databases.rake:29:in `block (2 levels) in <main>' /bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform' /bundle/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform' /bundle/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke' /bundle/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi' /bundle/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `block in require' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency' /bundle/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require' bin/rails:4:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace)
やったこと
database.ymlを変更した
test: <<: *default template: template0 encoding: utf-8 database: ticket_test
これは何?
そもそもどうしてこんなことに(教えて偉い人)