ねこものがたり

いちにちいっぽ

TokyuRuby会議13に参加しました

TokyuRuby会議とは

regional.rubykaigi.org

TokyuRuby会議について TokyuRuby会議は、東京で開催される Regional RubyKaigi です。 Ruby に興味を持つエンジニアが集う Tokyu.rb 主催の LT 大会です。 飲み食いしつつ、みんなで LT をして盛り上がろうというイベントです

トノコト。 去年開催当日にTwitterで流れてくる様子を見ていて「楽しそうだなー」と思ったので、今年は絶対参加したいと思っていました!無事に参加できてよかったです^ ^

LT

「申し込みが多いと参加できないかも知れないけど、LTに応募したらLT当選しなくても優先的に参加できる(kもしれない)」ととある中の人が教えてくれたので、勢いでLTに応募しました!

そうしたらなんと当選しました! Rails Girlsと他のイベントではLTしたことはあったのですが、地域コミュニティーのイベントでLTしてみたいと思ってたので、この機会を与えていただけてありがたい限りでした!

speakerdeck.com

みなさんのLT

「飲みながらわいわいする会」というイメージがめちゃくちゃ強かったんですが、発表はすごい人たちのテックな話が多かったです。

内容は真面目だったり知見に溢れたものばかりだったのですが、堅い感じは全然ありませんでした。お酒が入った状態で 気持ちよく好きなことの話を何の遠慮もなく聞いたり話たりするのめっちゃ楽しかったです!最高でした!

ハッシュタグ追うとスライドがたくさん見つかるはず。 #tqrk13 - Twitter Search / Twitter

お料理や飲み物

なんの写真も撮ってない!!! みんなで持ち寄りのイメージがつかなかったんですが、実際のシステムや雰囲気は完全に学生の頃やってた宅飲みでしたw

投票では@tagomorisさんのその場でスチームした焼売が圧勝でした。おいしかったです!私はチーズケーキが好きでした!

感想

はじめて参加しました!想像以上に楽しかったです。あと想像と違って治安が良かったです。 みんなぐでんぐでんに酔って寝たりしてたのに、お開きの瞬間にはテキパキ会場片付けしたりしてました。わたしも生きていました。

運営の皆さん、スポンサーのみなさん、素晴らしいRuby会議をありがとうございましたー

encodingのエラーでdatabaseがcreateされなくなった話

環境

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

これは何?

そもそもどうしてこんなことに(教えて偉い人)