STUDY MEMO

学習のメモ書き

<Ruby on Rails エラー編> PG::DuplicateTable: ERROR: relation "tweets" already exists

発生したエラー

rails db:migrateを実行すると以下のエラーが発生した。

rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::DuplicateTable: ERROR:  relation "tweets" already exists
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `async_exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:47:in `block (2 levels) in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:46:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block (2 levels) in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:695:in `block in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:687:in `log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:45:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:322:in `create_table'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:929:in `block in method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `block in say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:918:in `method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/db/migrate/20210514015843_create_tweets.rb:3:in `change'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:867:in `exec_migration'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:851:in `block (2 levels) in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:850:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:849:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1037:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1329:in `block in execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `block in ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1328:in `execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `migrate_without_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1401:in `block in with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `block in with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1397:in `with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1086:in `up'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1061:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:237:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:92:in `block (3 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `block (2 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/rake_module.rb:59:in `with_application'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/command.rb:52:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands.rb:18:in `<main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/rails:5:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `block in <top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `tap'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `<top (required)>'

Caused by:
ActiveRecord::StatementInvalid: PG::DuplicateTable: ERROR:  relation "tweets" already exists
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `async_exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:47:in `block (2 levels) in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:46:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block (2 levels) in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:695:in `block in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:687:in `log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:45:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:322:in `create_table'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:929:in `block in method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `block in say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:918:in `method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/db/migrate/20210514015843_create_tweets.rb:3:in `change'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:867:in `exec_migration'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:851:in `block (2 levels) in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:850:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:849:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1037:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1329:in `block in execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `block in ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1328:in `execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `migrate_without_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1401:in `block in with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `block in with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1397:in `with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1086:in `up'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1061:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:237:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:92:in `block (3 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `block (2 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/rake_module.rb:59:in `with_application'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/command.rb:52:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands.rb:18:in `<main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/rails:5:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `block in <top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `tap'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `<top (required)>'

Caused by:
PG::DuplicateTable: ERROR:  relation "tweets" already exists
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.2/lib/patches/db/pg.rb:110:in `async_exec'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:47:in `block (2 levels) in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:46:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block (2 levels) in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:695:in `block in log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:687:in `log'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql/database_statements.rb:45:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:322:in `create_table'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:929:in `block in method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `block in say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:897:in `say_with_time'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:918:in `method_missing'
/Users/user_name/workspace/runteq/PF/kinoko2/db/migrate/20210514015843_create_tweets.rb:3:in `change'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:867:in `exec_migration'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:851:in `block (2 levels) in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:850:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:849:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1037:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1329:in `block in execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `block in ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in `transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1380:in `ddl_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1328:in `execute_migration_in_transaction'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1302:in `migrate_without_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `block in migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1401:in `block in with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `block in with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:462:in `with_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1416:in `with_advisory_lock_connection'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1397:in `with_advisory_lock'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1251:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1086:in `up'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/migration.rb:1061:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:237:in `migrate'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:92:in `block (3 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:90:in `block (2 levels) in <main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/rake_module.rb:59:in `with_application'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/command.rb:52:in `invoke'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands.rb:18:in `<main>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/rails:5:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `require'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `block in <top (required)>'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `tap'
/Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `<top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

対処法

PG::DuplicateTable: ERROR: relation "tweets" already existsという記載から、tweetsというテーブルが既に存在していることがわかる。
原因はデータベースにテーブルが消したテーブルが残っていたのが原因。

$ rails db:migrate:reset

Dropped database 'kinoko2_test'
Created database 'kinoko2_development'
Created database 'kinoko2_test'
== 20210514015843 CreateTweets: migrating =====================================
-- create_table(:tweets)
   -> 0.0352s
== 20210514015843 CreateTweets: migrated (0.0353s) ============================

を実行することでデータベースをdropされ、新たにテーブルがcreateされる。
これによりDBがリセットされて、rails db:migrateすることでエラーが解消される。

参考文献

[Rails5] PG::DuplicateTable: ERROR~の解決方法 | kirohi.com

<VSC> ショートカットキーについて

ショートカットキーの一覧を開く

⌘ + k + s

よく使う

ターミナル->エディタへ移動

⌘ + 1 (規定)

エディタ->ターミナルへ移動

⌘ + y (ユーザー設定)

指定ファイルを開く

⌘ + p (規定)

現在開いているファイルを上書き保存

⌘ + s (規定)

現在開いているファイルを閉じる

⌘ + w (規定)
※ファイルが開いてない場合はVSCを閉じる

ファイルを移動

右:⌘ + shift + ] (規定)
左:⌘ + shift + [ (規定)

パネルを閉じる

⌘ + j (規定)

参考文献

Visual Studio Code でエディタとターミナルを移動するショートカットキーの作成 - Qiita

<Ruby on Rails エラー編> mimemagicのbundle installエラーについて

エラーについて

mimemagicがbundle installできなくなった。
2021年3月下旬、twitterなどで大騒ぎになった。
大元が誤ったライセンスのもと配布していたようで、MITで配布していたが、実際はmimemagicの中のファイルがshared-mime-infoに依存しているためライセンスはGPLということになって修正が入り、ActiveRecordがmimemagicに依存していたため、buildができない大混乱が生じた、ということらしい?
数日後該当のファイルを削除してMITに戻ったらしいが、その代わりGPLのshared-mime-infoのインストールを自分で行わないといけなくなったということらしい。
Rails 5.2.5, 6.0.3.6, 6.1.3.1に関してはmimemagicの依存がなくなったとのことで、問題はなくなったよう。

対処法

Rails 5.2.5以前のものはmimemagicが依存しているため、別途shared-mime-infoをインストールする必要がある。

$ brew install shared-mime-info

参考文献

ruby on rails - docker build error Gem::Ext::BuildError: ERROR: Failed to build gem native extension for mimemagic-0.3.9 - Stack Overflow

Rails waves goodbye to mimemagic, welcomes Marcel to fix GPL MIME drama • The Register

週刊Railsウォッチ(20210329前編)特集: Rails更新版の臨時リリースとmimemagic gemのGPL問題|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

mimemagicの最新動向 - HackMD

https://wa3.i-3-i.info/word13200.html

RailsのGPL混入問題についてまとめ(mimemagic) - Qiita

<Ruby on Rails エラー編> rails consoleが起動できない

発生したエラー

rails consoleを実行すると、以下のエラーが発生した。

Traceback (most recent call last):
        17: from bin/rails:2:in `<main>'
        16: from bin/rails:2:in `load'
        15: from /Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `<top (required)>'
        14: from /Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:7:in `tap'
        13: from /Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `block in <top (required)>'
        12: from /Users/user_name/workspace/runteq/PF/kinoko2/bin/spring:10:in `require'
        11: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
        10: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
         9: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
         8: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
         7: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
         6: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:24:in `call'
         5: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
         4: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/run.rb:35:in `call'
         3: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/run.rb:42:in `warm_run'
         2: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/run.rb:62:in `run'
         1: from /Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/run.rb:117:in `verify_server_version'
/Users/user_name/workspace/runteq/PF/kinoko2/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/run.rb:117:in `gets': Interrupt

対処

デフォルトでセットされているSpringは、アプリケーションをバックグラウンドで動作させることで、開発を高速化するgem。
見たところspringが動いているので、プロセスを確認。

$ ps aux | grep -i spring
user_name            5264   0.0  0.0  4387048   2056   ??  S     4:11PM   0:01.33 spring server | kinoko2 | started 11 hours ago   
user_name           32697   0.0  0.0  4279688    764 s002  S+    4:50AM   0:00.01 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox -i spring

springをkillする。

$ kill -9 5264 

rails consoleを実行したところ、動いた。

参考文献

railsのコマンドが動かない時はspringを(stop|kill)してみよう - Qiita

<Ruby on Rails エラー編> PostgreSQLに接続できなかった時の対処法

エラー詳細

create db:createを実行しようとするとエラーが出た。

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Couldn't create 'アプリ名_development' database. Please check your configuration.
rails aborted!
ActiveRecord::ConnectionNotEstablished: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:83:in `rescue in new_client'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:77:in `new_client'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `public_send'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:926:in `checkout_new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:905:in `try_to_checkout_new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:866:in `acquire_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:588:in `checkout'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:428:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:1128:in `retrieve_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_handling.rb:283:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/postgresql_database_tasks.rb:12:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/postgresql_database_tasks.rb:26:in `create'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:133:in `create'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:193:in `block in create_current'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:506:in `block (2 levels) in each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:503:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:503:in `block in each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:502:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:502:in `each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:193:in `create_current'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:45:in `block (2 levels) in <main>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/rake_module.rb:59:in `with_application'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/command.rb:52:in `invoke'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands.rb:18:in `<main>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/rails:5:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:10:in `block in <top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:7:in `tap'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:7:in `<top (required)>'

Caused by:
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:78:in `new_client'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `public_send'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:926:in `checkout_new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:905:in `try_to_checkout_new_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:866:in `acquire_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:588:in `checkout'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:428:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:1128:in `retrieve_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/connection_handling.rb:283:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/postgresql_database_tasks.rb:12:in `connection'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/postgresql_database_tasks.rb:26:in `create'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:133:in `create'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:193:in `block in create_current'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:506:in `block (2 levels) in each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:503:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:503:in `block in each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:502:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:502:in `each_current_configuration'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/tasks/database_tasks.rb:193:in `create_current'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.3.2/lib/active_record/railties/databases.rake:45:in `block (2 levels) in <main>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/rake-13.0.3/lib/rake/rake_module.rb:59:in `with_application'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/command.rb:52:in `invoke'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/railties-6.1.3.2/lib/rails/commands.rb:18:in `<main>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/rails:5:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/Users/user_name/workspace/runteq/PF/アプリ名/vendor/bundle/ruby/2.6.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:10:in `block in <top (required)>'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:7:in `tap'
/Users/user_name/workspace/runteq/PF/アプリ名/bin/spring:7:in `<top (required)>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

やったこと

まず、postgreSQLが動作しているかを確認する。

$ brew services list
mysql@5.7  stopped        
postgresql error   user_name /Users/user_name/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

エラーが発生していて、起動できていないことが確認できた。
一応upgradeを一度して、改めてパスを通した。

$ brew upgrade postgresql

$ echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc 

upgradeした時にpostgresqlの起動方法が表示されているので、

To have launchd start postgresql now and restart at login: 
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start

のうち、

$ pg_ctl -D /usr/local/var/postgres start 

起動を実行した。

waiting for server to start....2021-05-13 00:13:14.089 JST [24927] LOG:  starting PostgreSQL 13.2 on x86_64-apple-darwin20.3.0, compiled by Apple clang version 12.0.0 (clang-1200.0.32.29), 64-bit
2021-05-13 00:13:14.091 JST [24927] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2021-05-13 00:13:14.091 JST [24927] LOG:  listening on IPv6 address "::1", port 5432
2021-05-13 00:13:14.107 JST [24927] FATAL:  could not create lock file "/tmp/.s.PGSQL.5432.lock": Permission denied
2021-05-13 00:13:14.109 JST [24927] LOG:  database system is shut down
 stopped waiting
pg_ctl: could not start server
Examine the log output.

すると上記のような表示が出力され、tmpディレクトリにpermission deniedが発生していることがわかった。
そのため、以下のコマンドで許可を与えた。

$ sudo chmod 1777 /tmp 

そしてもう一度

$ pg_ctl -D /usr/local/var/postgres start 

を実行した。
すると以下のような表示が出た。

pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....2021-05-13 00:17:46.861 JST [25470] FATAL:  lock file "postmaster.pid" already exists
2021-05-13 00:17:46.861 JST [25470] HINT:  Is another postmaster (PID 25460) running in data directory "/usr/local/var/postgres"?
 stopped waiting
pg_ctl: could not start server
Examine the log output.

今度はlock file "postmaster.pid" already existsという表示が出たのでrmした。

$ rm /usr/local/var/postgres/postmaster.pid 

brew services listで動作確認をまた行うと、

Name       Status  User   Plist
mysql@5.7  stopped        
postgresql started user_name /Users/user_name/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

で動作確認ができ、rails db:createも実行できるようになった。

参考文献

Postgresqlに接続できなくなった時の対処法 - Qiita

<Ruby on Rails> credentials.yml.encの設定方法

credentialsとは

production環境用の秘密情報の管理をするためにRails5.2でcredentialsという機能が追加された。
これが導入されるまでは環境変数などで設定されていた。
credentialsは、管理される秘密情報そのものを指すと同時に、管理の仕組みを指す言葉である。
この仕組みを簡単に説明すると、credentials.yml.encファイルに記載された情報を暗号化し、master.keyで複合し、使用できるようにしたもの。

credentials.yml.enc

秘密情報(credentials)は、config/credentials.yml.encに記述する。
このファイルは常に暗号化して保存され、このファイルの内容を編集するには専用コマンドを使用する。
複合はmaster.keyファイルなどからキー情報を取り出して行われる。

Image from Gyazo ※1のp280を参照

基本的に同一のリポジトリにcredentialsファイルとmaster.keyファイルを一緒に置かないこと(復号できてしまうので)。
Railsアプリケーションは、.gitignoreに最初からconfig/master.keyが記述されており、pushされないようになっている。


中身を見るコマンド

$ bin/rails credentials:show


編集するコマンド

$ bin/rails credentials:edit

EDITOR環境変数が設定されていないと、以下のような記載が必要になる。
例:vimの場合

$ EDITOR=vi bin/rails credentials:edit

ちなみにEDITOR環境変数は以下のように設定できる。

$ echo 'export EDITOR=vi' >> ~/.zshrc  // 環境変数EDITORを設定
$ source ~/.zshrc  // 環境設定ファイル~/.zshrcの内容を反映させる


アプリケーションからcredentialsを参照

例:デフォルトのAWSを参照する

$ Rails.application.credentials.aws
=> {:access_key_id=>123, :secret_access_key=>345}

$ Rails.application.credentials.aws[:access_key_id]
=>123

$ Rails.application.credentials.aws[:secret_access_key]
=>345

参考文献

Rails5.2から追加された credentials.yml.enc のキホン - Qiita

現場で使える Ruby on Rails 5速習実践ガイド | 大場寧子, 松本拓也, 櫻井達生, 小田井優, 大塚隆弘, 依光奏江, 銭神裕宜, 小芝美由紀 |本 | 通販 | Amazon※1

Linux編集エディタの変更 - 環境変数EDITORの設定 - Linux入門 - Webkaru

【 source 】コマンド/【 . 】コマンド――シェルの設定を即座に反映させる:Linux基本コマンドTips(169) - @IT

<VSC> draw.io拡張機能

拡張機能フローチャートが作図できるdraw.ioの拡張機能
インストールするとdraw.ioがVSCode上で記載できるようになる。

Image from Gyazo

Image from Gyazo

公式を見ると、拡張子は.drawio.svgと.drawio.pngが推奨されている。

参考文献

GitHub - hediet/vscode-drawio: This unofficial extension integrates Draw.io (also known as diagrams.net) into VS Code.

Visual Studio Code - *.drawio.svg や *.drawio.png の衝撃 - Qiita

VS Codeでフローチャートの描きができた - Qiita

<JavaScript> jQueryのメソッド、イベントについて

主要なメソッド

Image from Gyazo

on

例:liタグをクリックすると、アラートが発生する

<body>
  <div>
    <li>あああ</li>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
  $("li").on("click", () => {
    window.alert("clickされた");
  });

https://i.gyazo.com/c326d75c7579044c4f27e34e4f888535.gif

fadeout

例:liタグをクリックするとゆっくり消える

<body>
  <div>
    <li>クリックされると消えるよ</li>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
$("li").click(() => {
  $("li").fadeOut("slow");
});

https://i.gyazo.com/707d55fc4b3065b6fbe1b4c512acdb8f.gif

fadein

例:clickしてくださいを押すとボックスが表示される

<style>
    span {
      cursor: pointer;
    }
    div {
      margin: 3px;
      width: 80px;
      display: none;
      height: 80px;
      float: left;
    }
    #one {
      background-color: aqua;
    }
    #two {
      background-color: pink;
    }
    #three {
      background-color: yellow;
    }
  </style>
  <body>
    <span>clickしてください</span>
    <div id="one"></div>
    <div id="two"></div>
    <div id="three"></div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="script.js"></script>
  </body>
$(document.body).click(() => {
  $("div:hidden").first().fadeIn("slow");
});

https://i.gyazo.com/bc17166a75e6d6f93c65789f96081ecc.gif

イベント

「〜をクリックした時」「〜にマウスのカーソルをのせた時」など

「〜をした時」に「〜の処理をする」というもの

イベントの書き方

$(function(){
    $("セクレタ").イベント(function{  // セクレタ1を〇〇(=イベント)をした時の部分
        $("セレクタ2").メソッド(引数);  // セレクタ2に対して××(=イベント)をした時の部分
    });
});

覚えておきたいイベント

https://i.gyazo.com/d0be64ee3d7da29a9c1fd7351072dd67.png

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      div {
        height: 50px;
        width: 50px;
        text-align: center;
        line-height: 50px;
      }

      .box1,
      .box4 {
        background-color: silver;
      }

      .box2,
      .box5 {
        background-color: aquamarine;
      }

      .box3,
      .box6 {
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div class="box1">1</div>
    <div class="box2">2</div>
    <div class="box3">3</div>
    <div class="box4">4</div>
    <div class="box5">5</div>
    <div class="box6">6</div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
      $(function () {
        $(".box1").click(function () {
          $(".box2").hide();
          $(".box3").hide();
          $(".box4").hide();
          $(".box5").hide();
          $(".box6").hide();
        });
      });
    </script>
  </body>
</html>

hoverイベント

hover(ホバー)イベントとは、mouseoverとmouseoutの2つを組み合わせたような処理ができるイベント

基本的な記述方法

$(function () {
  $("セレクタ").hover(
    function () {},  // マウスをのせた時の処理部分
    function () {}   // マウスを外した時の処理部分
  );
});
<body>
    <p>画像を表示</p>
    <img src="https://picsum.photos/200/300" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
      $(function () {
        $("p").hover(
          function () {
            $("img").fadeIn();
          },
          function () {
            $("img").fadeOut();
          }
        );
      });
    </script>
  </body>
<body>
  <div class="abc">
    <img src="https://picsum.photos/200/300" />
    <img src="https://picsum.photos/200/300" />
    <img src="https://picsum.photos/200/300" />
  </div>
  <img src="https://picsum.photos/200/300" />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script>
    $(function () {
      $("img").hover(
        function () {
          $(this).animate({ width: "220px" });
        },
        function () {
          $(this).animate({ width: "200px" });
        }
      );
    });
  </script>
</body>

参考文献

.on() | jQuery API Documentation

<Ruby on Rails エラー編> rails -vをすると大量にignoring nokogiriが吐き出された

発生したエラー

railsをnewした後bundle installし、ふとrails -vを押してみたら大量のignoring nokogiri ~というエラーが出た

$ rails -v
Ignoring nokogiri-1.10.9 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.9
...大量に発生

解決方法

なんでそんなことになったのか分からず、調べてみると以下の記事を発見。
ライブラリがおかしくなっていたようで、一度rbenvをuninstallしてみると解決した。

$ rbenv uninstall 2.6.6
rbenv: remove /Users/user_name/.rbenv/versions/2.6.6? [yN] y
rbenv: cannot rehash: /Users/user_name/.rbenv/shims/.rbenv-shim exists

$ rbenv install
Downloading openssl-1.1.1k.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
Installing openssl-1.1.1k...
Installed openssl-1.1.1k to /Users/user_name/.rbenv/versions/2.6.6

Downloading ruby-2.6.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.bz2
Installing ruby-2.6.6...
ruby-build: using readline from homebrew
Installed ruby-2.6.6 to /Users/user_name/.rbenv/versions/2.6.6

rbenv: cannot rehash: /Users/user_name/.rbenv/shims/.rbenv-shim exists

$ gem install rails

$ rails -v
Rails 6.1.3.1

以下の記述については、いらないファイルが存在しているということらしいので、rmすれば良いらしい。
ちょっと怖いのでmvでゴミ箱へ飛ばした。

rbenv: cannot rehash: /Users/user_name/.rbenv/shims/.rbenv-shim exists

参考文献

railsコマンドを叩くと「Ignoring nokogiri~」が大量に吐き出された話。 - Qiita

ruby on rails - rbenv rehash not working - Stack Overflow

GitHub - rbenv/rbenv: Groom your app’s Ruby environment

<JavaScript> jQueryの基本構文、セクレタについて

jQueryとは

JavaScriptのコードを簡単に使えるようにしたライブラリ(コード集)。 使用するとwebページにさまざまな動きを加えることができる。


使用方法

jQueryファイル(CDN:Contents Delivery Network)を読み込んで使用
jQueryファイルをダウンロードして使用

Download jQuery | jQuery

記載する場所はheadタグ内か、bodyの締めの手前。
最近はbody前が多い、らしい。
先にjqueryCDNを読ませないとscriptが使用できないので注意する。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>

script タグの type="text/javascript" の有無による違い

※上記記事で、html5以降ではtype指定が不要になったと記載があったので、typeの記載はなくて良し

JavaScriptファイル(script.js)

jQuery(function(){
    // ここにjQueryを書く
});

// jQueryは$で書くこともできる
$(function(){
    // ここにjQueryを書く
});


基本的な記述方法

$(function(){
    $("セクレタ").メソッド(引数);
});

・セクレタ
クレタと呼ばれる部分
「id」、「class」、「子」などを記述し、対象となる部分を定義。

・メソッド
メソッドと呼ばれる部分。
指定したセクレタに対して、どういった処理を実行するかを定義。

・引数
引数と呼ばれる部分。
引数を指定することで、メソッドの動作を制御。

クレタ

タイプセクレタ(=要素セクレタ)

h1、h2、p、ul、img...

例:divクラスにクラス名"color"を追加

...
<style>
  .color {
    color: red;
  }
</style>
<body>
  <div>おはよう</div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
...

script.js

$("div").addClass("color");

https://i.gyazo.com/156e07832f3f9cf1a2049b117de8a389.png

クラスセクレタ

.a、.b、.cのようにドットの後ろに任意(好きな)の文字を記述

例:aクラスのフォントの色をピンクに変更

...
<body>
  <div class="a">おはよう</div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
...
$(".a").css("color", "pink");

https://i.gyazo.com/6ad410fcf1a91ee5d56f13bc74eb8a78.png

IDセレクタ

#abc、#xyz、#nameのようにドットの後ろに任意(好きな)の文字を記述

例:divにid属性appを追加し、#app(idセクレタ)の色を赤に変更する

<body>
  <div>おはよう</div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
$("div").attr("id", "app");
$("#app").css("color", "red");

https://i.gyazo.com/88fd6bc2e8cb4ab1ed7e8958b16419d1.png

グループセクレタ

複数のセレクタをカンマ区切りで同時に指定する

例:div、liのフォントをピンクに変える

<body>
  <div>おはよう</div>
  <li>こんばんは</li>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
$("div, li").css("color", "pink");

https://i.gyazo.com/7999674de6f83eaba967df3f618b2246.png

スペース区切り

複数のセレクタをスペースで区切り、任意タグの中のタグ(子や孫)にのみ適用

例:divタグ内のliタグの色だけピンクに変える

<body>
  <div>
    <div>ああああ</div>
    <li>おおおお</li>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script src="script.js"></script>
</body>
$("div li").css("color", "pink");

https://i.gyazo.com/03d9b887d93315ab2b648f0a91b763b1.png

< コマンド > yarn

YarnとはJavaScriptソフトウェアの依存関係を管理するプログラムのこと

Yarnのバージョンを確認

$ yarn -v

Yarnと依存関係にあるソフトウェアのバージョンを確認

$ yarn versions

参考文献

https://classic.yarnpkg.com/en/docs/install/#mac-stable

< コマンド > nodenv

nodenvとは

Nodenv…node.jsのバージョン管理ソフトウェア

nodenvのインストール

$ brew install nodenv

// $ vim ~/.zshrcに以下を追記
$ eval "$(nodenv init -)"

// Nodenv-doctorで設定されていることを確認
$ curl -fsSL <https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor> | bash

Node.jsバージョン一覧

$ nodenv install -l

インストール一覧

$ nodenv versions

現在のバージョン

$ nodenv version
#これも使える
$ node -v

指定したバージョンをインストール

$ nodenv install

バージョンを指定

// グローバル
$ nodenv grobal バージョン

// ローカル
$ nodenv local バージョン

参考

https://github.com/nodenv/nodenv

< コマンド > rails関連

Railsのバージョン確認

$ rails -v

インストール済みのRubyの確認

$ gem info -e rails

Railsのインストール

$ gem install rails -v バージョン

Railsのバージョン指定はアプリケーション作成時に行う

$ rails _バージョン_ new アプリケーション名

< コマンド > rbenv

インストール済みのRubyの確認

$ rbenv versions

インストールされてないRubyのバージョンのうち、インストール可能なバージョンを確認

$ rbenv install --list

Rubyのインストール

$ rbenv install バージョン

特定のディレクトリでバージョンを適用

$ rbenv local バージョン

全てのディレクトリでバージョンを適用

$ rbenv global バージョン