개인적으로 이 관련 게시글들은 자동 삭제될 경우 유실되지 않도록, 그리고 플러그인을 개발하거나 개발을 계획 중인 우리들에게 필수적인 howto(필수 지식) 주제이므로 별도의 토픽으로 분리되어야 한다고 생각합니다.
안녕하세요,
지침에 따라 진행했지만 앱이 실행되지 않고 브라우저 콘솔에 "ReferenceError: Discourse is not defined"라는 오류가 표시됩니다.
해결 방법을 찾고 있습니다.
감사합니다
이 구성으로 약 6개월간 운영해 왔는데, 오늘 Docker에서 평소처럼 작업을 진행하려고 했더니 Discourse가 데이터베이스에 연결할 수 없다는 메시지와 함께 실패했습니다.
최근 Postgres 13 업그레이드로 인해 문제가 발생한 걸까요?
여러 번 시도해 보았지만 실패하여 부트 초기화를 다시 진행하기로 했습니다. 모든 discourse_dev 컨테이너를 삭제하고 다음을 실행했습니다:
bletch@BletchUbuntu:~/RubymineProjects/discourse$ git pull
Already up-to-date.
bletch@BletchUbuntu:~/RubymineProjects/discourse$ rm -rf tmp/*
bletch@BletchUbuntu:~/RubymineProjects/discourse$ sudo d/boot_dev --init
Using script path: /home/bletch/RubymineProjects/discourse/bin/docker
Using source in: /home/bletch/RubymineProjects/discourse
Using data in: /home/bletch/RubymineProjects/discourse/data/postgres
Mounting symlinks for plugins: -v /home/bletch/RubymineProjects/plugin_dev/discourse-onebox-assistant:/src/plugins/discourse-onebox-assistant:delegated -v /home/bletch/RubymineProjects/plugin_dev/school-points:/src/plugins/school-points:delegated -v /home/bletch/RubymineProjects/plugin_dev/discourse-custom-wizard:/src/plugins/discourse-custom-wizard:delegated
mount_plugin_symlinks=: -v /home/bletch/RubymineProjects/plugin_dev/discourse-onebox-assistant:/src/plugins/discourse-onebox-assistant:delegated -v /home/bletch/RubymineProjects/plugin_dev/school-points:/src/plugins/school-points:delegated -v /home/bletch/RubymineProjects/plugin_dev/discourse-custom-wizard:/src/plugins/discourse-custom-wizard:delegated
release: Pulling from discourse/discourse_dev
Digest: sha256:0a9e857b7a225660463a47446fb28d6f8b92b0fc559310723300d59a950d9563
Status: Image is up to date for discourse/discourse_dev:release
docker.io/discourse/discourse_dev:release
d19dec96649b15cd03af4a3f68f3f8f97ec67d06caf274bef301b03c9e7548d9
Installing gems...
Fetching gem metadata from https://rubygems.org/.........
Using rake 13.0.1
...
[LOTS OF GEM DETAILS]
...
Bundle complete! 123 Gemfile dependencies, 209 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Migrating database...
rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/src/config/environment.rb:7:in `<main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
컨테이너에 루트 권한으로 들어가 psql을 실행해 보았지만, 아무 결과도 나오지 않습니다.
root@discourse:/# psql
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
컨테이너 내부의 Postgres가 실제로 업데이트된 상태입니다.
root@discourse:/# psql -V
psql (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)
어떤 단서가 있을까요?
같은 문제인지는 확신할 수 없지만, 비슷한 문제를 겪은 적이 있습니다. 컨테이너 내 일부 파일의 권한 문제로 PostgreSQL이 해당 파일에 접근할 수 없어 시작되지 않는 상황이었습니다. 그 단서는 PostgreSQL 로그에 있었습니다. 로그를 확인해 보시는 건 어떨까요?
제안해 주셔서 감사합니다, @mentalstring. 이상하게도 Postgres 메인 로그 /var/log/postgresql/postgresql-13-main.log는 비어 있습니다.
하지만 /var/log/ 구조 내의 다른 파일 몇 가지에 단서가 있습니다. /var/log/postgres/current 파일은 다음과 같은 반복적인 오류로 가득 차 있습니다.
2020-12-11 20:06:34.875 UTC [11680] FATAL: database files are incompatible with server
2020-12-11 20:06:34.875 UTC [11680] DETAIL: The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.1 (Debian 13.1-1.pgdg1
00+1).
적절하게 검색해 보니 원시 DB 포맷이 호환되지 않으며 pg_upgrade 명령을 실행해야 한다는 것을 알게 되었습니다.
PATH에서 해당 명령을 찾을 수 없습니다. 어쨌든, 더 검색해 보니 Docker 기반 시스템에서는 이 문제가 발생하기 쉽다는 것을 알 수 있었습니다. 작동하려면 Postgres의 구버전과 신버전이 모두 존재해야 하기 때문입니다.
도움이 될 수 있는 분들을 위한 추가 질문들입니다.
- 이 업그레이드에서 개발용으로 Docker를 사용하는 것의 근본적인 문제인가요?
- 제가 어떤 단계를 놓친 건가요?
- 지금 변환할 수 있나요?
- 최후의 수단으로, 현재 데이터를 삭제하여
boot_dev --init가 Postgres 13으로 데이터베이스를 다시 생성하게 하는 방법은 무엇인가요?
미리 감사드립니다.
이 부분은 첫 번째 게시물에 언급되어 있습니다:
VPS에서 이 설치 가이드를 따랐는데, 새로 설치된 Discourse에 접근하는 데 문제가 있습니다. VPS의 IP 주소 뒤에 포트 9292를 붙여 Discourse에 접속을 시도해 보았지만 성공하지 못했습니다. Docker 인터페이스 때문에 노출된 포트가 다를 것 같습니다.
수정:
아, Docker에서 포트 전역 노출을 깜빡했네요. 이제 해결되었습니다.
올해 초 플러그인을 개발하기 위해 개발 환경을 설정했습니다. 이제 해당 플러그인이 최신 버전의 Discourse에서도 정상적으로 작동하는지 확인하고 싶습니다. 처음부터 새로운 개발 환경을 구축하는 것(새로운 도커 컨테이너, 데이터베이스 등)이 더 나은 선택일까요, 아니면 오래된 빌드에서 최신 버전으로 업그레이드하는 것이 간단한가요? 프로덕션 환경에서 데이터베이스 마이그레이션에 대해 가끔씩 듣게 되는데, 이 부분이 가장 불확실합니다. 현재 환경을 그대로 유지하고 git에서 pull한 후에는 무엇을 해야 하나요?
bundle install
rake db:migrate
이렇게 하면 됩니다
이 문제를 해결하지 못하고 있습니다. master 브랜치에서 최신 코드를 받아온 후 다음 단계를 수행했습니다:
d/boot_dev(정상 작동)d/bundle install(정상 작동)- 원포스터가 안내한 대로
d/rails db:migrate RAILS_ENV=development또는 추천하신 대로d/rake db:migrate를 실행했으나 (둘 다 작동하지 않음)
그중 하나를 실행했을 때 발생한 에러입니다 (다른 하나도 기본적으로 동일한 내용입니다):
rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/src/config/environment.rb:7:in `<main>'
bin/rails:17:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
그리고 에러 메시지의 권장 사항에 따라 --trace를 추가했을 때의 전체 트레이스입니다:
전체 트레이스
** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in `postgresql_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_handling.rb:189:in `connection'
/src/lib/site_settings/db_provider.rb:61:in `table_exists?'
/src/lib/site_settings/db_provider.rb:16:in `all'
/src/lib/site_settings/defaults_provider.rb:29:in `db_all'
/src/lib/site_setting_extension.rb:290:in `block in refresh!'
/src/lib/site_setting_extension.rb:287:in `synchronize'
/src/lib/site_setting_extension.rb:287:in `refresh!'
/src/lib/site_setting_extension.rb:522:in `block in setup_methods'
/src/config/initializers/004-message_bus.rb:120:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:318:in `block in load'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:318:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:666:in `block in load_config_initializer'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/notifications.rb:182:in `instrument'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:665:in `load_config_initializer'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:625:in `block (2 levels) in <class:Engine>'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:624:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/engine.rb:624:in `block in <class:Engine>'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `instance_exec'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:32:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:61:in `block in run_initializers'
/usr/local/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
/usr/local/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:50:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:50:in `tsort_each_child'
/usr/local/lib/ruby/2.7.0/tsort.rb:415:in `call'
/usr/local/lib/ruby/2.7.0/tsort.rb:415:in `each_strongly_connected_component_from'
/usr/local/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `each'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `call'
/usr/local/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
/usr/local/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
/usr/local/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/initializable.rb:60:in `run_initializers'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:363:in `initialize!'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/railtie.rb:190:in `public_send'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/railtie.rb:190:in `method_missing'
/src/config/environment.rb:7:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:339:in `require_environment!'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/application.rb:523:in `block in run_tasks_blocks'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `block in execute'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in `execute'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:243:in `block in invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:241:in `invoke_prerequisites'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:218:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `synchronize'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in `invoke_with_call_chain'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in `invoke'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in `invoke_task'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `each'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in `block in top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in `run_with_threads'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in `top_level'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/command.rb:48:in `invoke'
/usr/local/lib/ruby/gems/2.7.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/usr/local/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
bin/rails:17:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
데이터베이스에 연결할 수 없다는 것 외에는 이 모든 것이 무엇을 의미하는지 전혀 알 수 없습니다. 지난 1년 동안 포럼에서의 언급을 바탕으로 데이터베이스 마이그레이션이 필요하다고 가정하고 있을 뿐, 실제로 필요한지 어떻게 확인해야 하는지도 모르겠습니다.
이 시도가 실패하자 데이터베이스 마이그레이션이 관련이 없는지 확인해 보기 위해 d/unicorn만 실행해 보았지만, 이것도 끝에 다음과 같은 에러와 함께 실패했습니다:
7: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
6: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
5: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
4: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
3: from /usr/local/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in `postgresql_connection'
2: from /usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
1: from /usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/usr/local/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize': could not connect to server: No such file or directory (PG::ConnectionBad)
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
결국 실질적으로 동일한 문제인 것 같습니다. 이 연결 문제를 해결하는 방법이나 트레이스를 기반으로 발견할 수 있는 다른 오류에 대해 조언해 주실 수 있으신가요?
위쪽의 제 게시물을 참고해 주세요.
이와 관련이 있을 수도 있습니다.
제 추측으로는, 제 문제가 Postgres 13으로의 마이그레이션과 관련이 있는 것 같았습니다. 이 마이그레이션은 전체 설치 시에는 자동화되어 실행되지만, 개발 환경에서는 실행되지 않는다는 것이었습니다. (추측에 불과합니다.)
제 후속 게시물을 참고해 주세요.
결국 저는 데이터베이스를 재생성하고 복원하는 극단적인 방법을 선택했습니다.
솔직히 제가 유지할 가치가 있는 데이터는 별로 없거든요. 그래서 그게 작동한다면 모든 데이터를 지우는 것이 아마 가장 간단한 접근 방식일 거예요. sudo rm -fr data를 실행하고 d/boot_dev --init를 다시 실행하는 것만으로 시스템이 다시 정상 작동하도록 복구가 되는 건가요? 다만 "복구"가 정확히 무엇을 의미하는지 모르겠으니 그 부분은 좀 더 설명해 주실 수 있을까요?
네, 필요한 데이터가 있어서 데이터를 정리한 뒤 백업에서 RESTORE(복원)를 실행했습니다.
data를 삭제하고 다시 초기화하면서 환경을 다시 정상적으로 작동시킬 수 있었습니다. 이제 테스트 중이던 플러그인을 포함한 앱을 사용할 수 있습니다. 하지만 제 플러그인과 다른 플러그인을 대상으로 테스트를 실행할 때 오류가 발생합니다. 이는 제 플러그인만의 문제가 아닌지 확인하기 위해 다른 플러그인도 함께 테스트해 본 것입니다. 이 문제에 대해 별도의 주제를 올렸지만, Docker 설정과 관련이 있는지 확실하지 않아 여기에도 함께 공유합니다.
Windows에서 Ubuntu WSL 2를 사용 중입니다.
다음 명령을 실행할 때:
d/boot_dev --init
아무 반응이 없습니다. 실행 흔적 없이 단순히 새로운 줄이 시작될 뿐입니다. Docker와 git은 설치되어 있습니다. 무엇이 문제인지 혹시 아시는 분 계신가요?
감사합니다.
- Docker를 Windows 자체에 설치한 것이 아니라 WSL 2 안에 설치했죠?
- 명령어를 어떤 디렉터리에서 실행하고 있나요?
discourse저장소의 최상위 디렉터리에서 실행해야 합니다.
네, Windows와 Ubuntu WSL 2 모두에 docker를 설치했습니다.
그리고 /discourse 디렉터리에서 명령어를 실행했습니다.
하지만 엔터를 눌러도 아무런 반응이 없습니다.
에러 로그나 다른 메시지조차 뜨지 않아서 어디서부터 시작해야 할지 꽤 답답합니다.
여러분 안녕하세요. 질문이 있습니다. Digital Ocean의 원클릭 설치(Discourse | DigitalOcean Marketplace 1-Click App)를 사용하면 개발 환경으로 간주되는 건가요? 제 무지를 미리 죄송하게 생각합니다만, 프로덕션 환경과 개발 환경을 구분하는 것이 무엇인지 이해하는 데 어려움을 겪고 있어, 플러그인 개발을 배우는 긴 여정을 시작하고 싶습니다.
몇 가지 상황은 다음과 같습니다. (1) 오래된 맥(2012년형)과 오래된 운영체제(10.12.6)를 사용 중인데, 터미널을 통해 로컬 설치에 필요한 모든 것을 수동으로 설치할 수 없습니다. 많은 것을 소스에서 빌드해야 하며, 결국 끝이 없는 “make” 명령에 막히게 됩니다. (2) 과거에 Digital Ocean의 원클릭 드롭렛으로 Discourse 포럼을 성공적으로 만든 적이 있지만, 프로덕션 용도로만 사용했고 개발 용도로는 사용하지 않았습니다.
어떤 도움이나 조언이든 감사히 받겠습니다!
안녕하세요!
WSL을 사용하여 Windows에 Discourse를 설치하는 데 성공했습니다.
완료한 사전 준비 사항:
- WSL 버전 2 활성화
- Ubuntu 20.04 사용
- 배포판 설정
주어진 지침을 따르시면 준비 완료입니다
배포판 내 홈 폴더(/home/cosmin)에서:
- 첫 번째 게시글에 설명된 대로 Docker를 설치합니다. docker.io 설치 부분은 저에게는 필요하지 않았습니다.
sudo usermod -a -G docker $USER만 실행했습니다. - Docker 설치 완료 후,
sudo docker service start로 서비스를 시작하고 상태를 확인합니다. cd discoursed/boot_dev --init를 실행하고 완료될 때까지 기다립니다.- discourse 폴더에서
d/unicorn을 실행하면 준비 완료입니다.
참고:
명령어에서 권한 오류가 보고되면 sudo를 추가하여 시도해 보세요.
도움이 되길 바랍니다 ![]()
좋은 하루 되세요!
Cosmin
세팅을 공유해 주셔서 감사합니다. 다만 저는 Windows를 사용하지 않습니다. 특히 원클릭 Digital Ocean 세팅에 대해 궁금한데, 개발용으로 적합할까요?
