Не удалось настроить Discourse на Windows 10

Я не могу настроить Discourse в локальной среде Windows 10. Так как я новичок в технологии Discourse, не могли бы вы, пожалуйста, помочь мне решить эту проблему?

Ниже приведены проблемы, которые я обнаружил во время настройки:

praj@LAPTOP-M3AHJNKB:~/discourse$ bundle exec rake db:create
База данных 'discourse_development' уже существует
База данных 'discourse_test' уже существует
ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: Использование устаревшей обработки соединений устарело. Пожалуйста, установите
`legacy_connection_handling` в значение `false` в вашем приложении.

Новая обработка соединений не поддерживает геттер и сеттер `connection_handlers`.

Подробнее о том, как выполнить миграцию, читайте здесь: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling
 (вызвано из <main> в файле /home/praj/discourse/config/environment.rb:7)
База данных 'discourse_test_multisite' уже существует
praj@LAPTOP-M3AHJNKB:~/discourse$ bundle exec rake db:migrate
rake aborted!
Errno::ENOENT: Нет такого файла или каталога @ rb_sysopen - /home/praj/discourse/app/assets/javascripts/node_modules/xss/dist/xss.min.js

---------

praj@LAPTOP-M3AHJNKB:~/discourse$ bundle exec rake autospec
Если наблюдение за файлами не работает, вы можете принудительно включить опрос с помощью: bundle exec rake autospec p l=3
Нажмите [ENTER], чтобы остановить текущий запуск
Запуск Rspec: spec
ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: Использование устаревшей обработки соединений устарело. Пожалуйста, установите
`legacy_connection_handling` в значение `false` в вашем приложении.

Новая обработка соединений не поддерживает геттер и сеттер `connection_handlers`.


Случайный порядок с сидом 30233
.FFFFF..............................................FFFFFFFFFFFFFFFFFFFFFFF...............................F....FFFFFFFFFFFFFFFFFF.FFF.FFFFFFF....FFF.........................................................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF....................................FFF.F..F.F...............F.......FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FFFF.F.FFFFFFFFFFFFFFFFFFFFFFFFFF......FFFFFFFFFFFF..F..........F.............................FF.FFFFFFFFFFFFFF..........................................................FFFF..................................F..F.FF....FF.FF.........F..FFFF..............................FFFFFF......FFFFFFFFFFFFFFFFF.......FFFFFFFFFFFFFFFFF..................FFFFFFFFFFFFFFFF..F.FFFFFFFFFFFFFFFFFFFFFFFFFFF....................................................F...............................................FFFFFFFF....F............F...*...FFFF.....FFFFFFFFFFFFFFFFF...........................FF...................FFFF.........F...........................FF............................................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.FF.....FFFF.FF..........................................................................FFFFFF......................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.................oxipng worker: `oxipng` не найден; пожалуйста, предоставьте правильный бинарный файл или отключите этот рабочий процесс (аргумент --no-oxipng или `:oxipng => false` через опции)
...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF....FFFFFFFFFFFFFF.......................................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.............................................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF..FFFF..........FFFF....................FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF..FFFFF.........FFFFFFFFFF.....FF.....................................F....................................................F
ОТВЕТ: {"status" => 500, "error" => "Internal Server Error"}
ДЕТАЛИ ВАЛИДАЦИИ: {"missing_keys" => ["category"]}
F..........F.........F......................................FFF.....ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: ActiveRecord::Base.writing_role устарело и будет удалено в Rails 7.1.
Используйте `ActiveRecord.writing_role` вместо этого.
 (вызвано из test_multisite_connection в файле /home/praj/discourse/spec/rails_helper.rb:325)

Примечание:
Я следовал инструкциям форума по адресу Install Discourse on Windows for development. Но somehow я что-то упустил или сделал что-то не так при настройке Discourse.

Спасибо,
Прадипрадж Р.С.

Попробуйте выполнить yarn install перед миграцией.

Привет, Фалько,

Спасибо за предоставленную информацию.

Я попробовал это, но всё ещё сталкиваюсь с другой проблемой.

Node.js не совместим с Discourse.

praj@LAPTOP-M3AHJNKB:~/discourse$ yarn install
yarn install v1.22.19
[1/5] Validating package.json...
error discourse@1.0.0: The engine "node" is incompatible with this module. Expected version "16.* || >= 18". Got "14.20.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Примечание:
У меня есть другие проекты на PHP и Node.js, которые работают на версии Node 14.

Вы используете версию Node.js, которая устарела. Установите текущую поддерживаемую LTS-версию Node.js, и всё должно заработать.

Привет, Фалько,

Как ты и предложил, я установил последнюю версию Node.js. После этого я установил Yarn и некоторые другие зависимые пакеты.

Затем я выполнил следующие команды:

bundle exec rake autospec

Все тесты должны пройти успешно.

Запуск Rails-сервера:

bundle exec rails server

Рандомизированный seed продолжает выполняться, отображая несколько точек, а между ними появляются символы “F”…

Кроме того, при попытке выполнить следующие команды:

cd ~/discourse
bin/ember-cli

Я сталкиваюсь с другими проблемами на фронтенде.

Ошибка прокси Discourse Ember CLI:

FetchError: запрос к http://127.0.0.1:3000 не удался, причина: connect ECONNREFUSED 127.0.0.1:3000
at ClientRequest. (/home/praj/discourse/app/assets/javascripts/node_modules/node-fetch/lib/index.js:1483:11)
at ClientRequest.emit (node:events:513:28)
at Socket.socketErrorListener (node:_http_client:481:9)
at Socket.emit (node:events:513:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

FYI, This is the full error on the terminal window.

Failures:

  1) ApplicationHelper application_logo_dark_url when dark theme is present when dark logo is present should return correct url
     Failure/Error: expect(helper.application_logo_dark_url).to eq(SiteSetting.site_logo_dark_url)

       expected: "http://test.localhost/images/logo-dark.png"
            got: nil

       (compared using ==)
     # ./spec/helpers/application_helper_spec.rb:190:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  2) BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 10
     Failure/Error: raise DatabaseRestoreError.new("psql failed: #{last_line}") if Process.last_status&.exitstatus != 0

     BackupRestore::DatabaseRestoreError:
       psql failed: ERROR:  relation "foo" already exists
     # ./lib/backup_restore/database_restorer.rb:92:in `restore_dump'
     # ./lib/backup_restore/database_restorer.rb:26:in `restore'
     # ./spec/lib/backup_restore/shared_context_for_backup_restore.rb:59:in `execute_stubbed_restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:40:in `restore'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:44:in `expect_restore_to_work'
     # ./spec/lib/backup_restore/database_restorer_spec.rb:65:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  3) OptimizedImage.crop should produce cropped images (requires ImageMagick 7)
     Failure/Error: expect(cropped_size).to be < 200

       expected: < 200
            got:   210
     # ./spec/models/optimized_image_spec.rb:26:in `block (3 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  4) Jobs::CleanUpCrawlerStats keeps only the top records from the previous day
     Failure/Error: expect(WebCrawlerRequest.all).to contain_exactly(req1, req2, req3)

       expected collection contained:  [#<WebCrawlerRequest id: 53, date: "2022-08-16", user_agent: "Googlebot 3.0", count: 100>, #<WebCrawl...count: 40>, #<WebCrawlerRequest id: 56, date: "2022-08-16", user_agent: "Googlebot 6.0", count: 50>]
       actual collection contained:    [#<WebCrawlerRequest id: 9, date: "2022-08-09", user_agent: "Googlebot", count: 4>, #<WebCrawlerReque...count: 40>, #<WebCrawlerRequest id: 56, date: "2022-08-16", user_agent: "Googlebot 6.0", count: 50>]
       the extra elements were:        [#<WebCrawlerRequest id: 9, date: "2022-08-09", user_agent: "Googlebot", count: 4>, #<WebCrawlerReque...ebot", count: 1>, #<WebCrawlerRequest id: 49, date: "2022-08-18", user_agent: "Superbot", count: 1>]
     # ./spec/jobs/clean_up_crawler_stats_spec.rb:29:in `block (2 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  5) Report page_view_logged_in request reports with no page_view_logged_in records returns an empty report
     Failure/Error: expect(report.data).to be_blank
       expected `[{:x=>Mon, 08 Aug 2022, :y=>2}, {:x=>Tue, 09 Aug 2022, :y=>6}, {:x=>Wed, 10 Aug 2022, :y=>4}].blank?` to be truthy, got false
     # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  6) Report page_view_logged_in request reports with page_view_logged_in returns a report with data
     Failure/Error: expect(report.total).to eq 49

       expected: 49
            got: 61

       (compared using ==)
     # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  7) Report consolidated_page_views with no data works
     Failure/Error: expect(report[:data]).to be_empty
       expected `[{:x=>Mon, 08 Aug 2022, :y=>2}, {:x=>Tue, 09 Aug 2022, :y=>6}, {:x=>Wed, 10 Aug 2022, :y=>4}].empty?` to be truthy, got false
     # ./spec/models/report_spec.rb:1196:in `block (5 levels) in <main>'
     # ./spec/models/report_spec.rb:1195:in `each'
     # ./spec/models/report_spec.rb:1195:in `block (4 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  8) Report http_background request reports with no http_background records returns an empty report
     Failure/Error: expect(report.data).to be_blank
       expected `[{:x=>Tue, 09 Aug 2022, :y=>1}, {:x=>Wed, 10 Aug 2022, :y=>2}].blank?` to be truthy, got false
     # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  9) Report http_background request reports with http_background returns a report with data
     Failure/Error: expect(report.total).to eq 49

       expected: 49
            got: 52

       (compared using ==)
     # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  10) Report http_total request reports with no http_total records returns an empty report
      Failure/Error: expect(report.data).to be_blank
        expected `[{:x=>Tue, 09 Aug 2022, :y=>14}, {:x=>Wed, 10 Aug 2022, :y=>28}].blank?` to be truthy, got false
      # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  11) Report http_total request reports with http_total returns a report with data
      Failure/Error: expect(report.total).to eq 49

        expected: 49
             got: 91

        (compared using ==)
      # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  12) Report page_view_anon request reports with no page_view_anon records returns an empty report
      Failure/Error: expect(report.data).to be_blank
        expected `[{:x=>Mon, 08 Aug 2022, :y=>1}, {:x=>Tue, 09 Aug 2022, :y=>7}, {:x=>Wed, 10 Aug 2022, :y=>10}, {:x=>Tue, 16 Aug 2022, :y=>1}].blank?` to be truthy, got false
      # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  13) Report page_view_anon request reports with page_view_anon returns a report with data
      Failure/Error: expect(report.total).to eq 49

        expected: 49
             got: 68

        (compared using ==)
      # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  14) Report http_2xx request reports with http_2xx returns a report with data
      Failure/Error: expect(report.total).to eq 49

        expected: 49
             got: 106

        (compared using ==)
      # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  15) Report http_2xx request reports with no http_2xx records returns an empty report
      Failure/Error: expect(report.data).to be_blank
        expected `[{:x=>Tue, 09 Aug 2022, :y=>18}, {:x=>Wed, 10 Aug 2022, :y=>37}, {:x=>Thu, 11 Aug 2022, :y=>2}].blank?` to be truthy, got false
      # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  16) Report page_view_crawler request reports with no page_view_crawler records returns an empty report
      Failure/Error: expect(report.data).to be_blank
        expected `[{:x=>Mon, 08 Aug 2022, :y=>3}, {:x=>Tue, 09 Aug 2022, :y=>9}, {:x=>Wed, 10 Aug 2022, :y=>7}, {:x=>Thu, 11 Aug 2022, :y=>2}, {:x=>Tue, 16 Aug 2022, :y=>3}].blank?` to be truthy, got false
      # ./spec/models/report_spec.rb:207:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  17) Report page_view_crawler request reports with page_view_crawler returns a report with data
      Failure/Error: expect(report.total).to eq 49

        expected: 49
             got: 73

        (compared using ==)
      # ./spec/models/report_spec.rb:238:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  18) Middleware::RequestTracker log_request can log requests correctly
      Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(4)

        expected: 4
             got: 14

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:93:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  19) Middleware::RequestTracker log_request can exclude/include based on custom header
      Failure/Error: expect(ApplicationRequest.page_view_anon.first.count).to eq(2)

        expected: 2
             got: 1

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:61:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  20) Middleware::RequestTracker log_request can log Discourse user agent requests correctly
      Failure/Error: expect(ApplicationRequest.page_view_crawler.first.count).to eq(1)

        expected: 1
             got: 3

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:114:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  21) Middleware::RequestTracker log_request when ignoring anonymous page views does not ignore anonymous requests for public sites
      Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(2)

        expected: 2
             got: 14

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:159:in `block (4 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  22) Middleware::RequestTracker log_request when ignoring anonymous page views ignores anonymous requests for private sites
      Failure/Error: expect(ApplicationRequest.http_total.first.count).to eq(2)

        expected: 2
             got: 14

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:174:in `block (4 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  23) Middleware::RequestTracker full request can handle rogue user agents
      Failure/Error: expect(WebCrawlerRequest.where(user_agent: agent.encode('utf-8')).count).to eq(1)

        expected: 1
             got: 3

        (compared using ==)
      # ./spec/lib/middleware/request_tracker_spec.rb:35:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  24) ApplicationController#handle_theme selects the theme the user has selected
      Failure/Error: expect(controller.theme_id).to eq(SiteSetting.default_theme_id)

        expected: -1
             got: nil

        (compared using ==)
      # ./spec/requests/application_controller_spec.rb:454:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  25) ApplicationController#handle_theme does not allow non privileged user to preview themes
      Failure/Error: expect(controller.theme_id).to eq(SiteSetting.default_theme_id)

        expected: -1
             got: nil

        (compared using ==)
      # ./spec/requests/application_controller_spec.rb:492:in `block (3 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  26) CookedPostProcessor#post_process when processing images with title only generates overlay information using image title
      Failure/Error:
                  expect(cpp.html).to match_html <<~HTML
                    <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="WAT"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" title="WAT" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
                  HTML

        after sanitizing for extra white space and compactness, expected:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" data-download-href="//test.localhost/uploads/default/test_0/a7f1ce9ea8991b68653b7ccce93545821a64eac8" title="WAT"><img src="//test.localhost/uploads/default/test_0/original/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" title="WAT" width="690" height="788"><div class="meta">
        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
        </div></a></div></p>
         to match:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8.png" data-download-href="//test.localhost/uploads/default/test_0/a7f1ce9ea8991b68653b7ccce93545821a64eac8" title="WAT"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a7f1ce9ea8991b68653b7ccce93545821a64eac8_2_690x788.png" title="WAT" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
      # ./spec/lib/cooked_post_processor_spec.rb:712:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  27) CookedPostProcessor#post_process when processing images with iPhone X screenshots crops the image
      Failure/Error:
                  expect(cpp.html).to match_html <<~HTML
                    <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="logo.png"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_230x500.png" width="230" height="500"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125×2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
                  HTML

        after sanitizing for extra white space and compactness, expected:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a4bde38a475244bf968492a174dae41c6fc586ed.png" data-download-href="//test.localhost/uploads/default/test_0/a4bde38a475244bf968492a174dae41c6fc586ed" title="logo.png"><img src="//test.localhost/uploads/default/test_0/original/1X/a4bde38a475244bf968492a174dae41c6fc586ed.png" width="230" height="500"><div class="meta">
        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125×2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
        </div></a></div></p>
         to match:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a4bde38a475244bf968492a174dae41c6fc586ed.png" data-download-href="//test.localhost/uploads/default/test_0/a4bde38a475244bf968492a174dae41c6fc586ed" title="logo.png"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a4bde38a475244bf968492a174dae41c6fc586ed_2_230x500.png" width="230" height="500"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1125×2436 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
      # ./spec/lib/cooked_post_processor_spec.rb:616:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  28) CookedPostProcessor#post_process when processing images with alt only generates overlay information using image alt
      Failure/Error:
                  expect(cpp.html).to match_html <<~HTML
                    <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="RED"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
                  HTML

        after sanitizing for extra white space and compactness, expected:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/4/42792bed56e0662f221c635573264fa7826744bf.png" data-download-href="//test.localhost/uploads/default/test_0/42792bed56e0662f221c635573264fa7826744bf" title="RED"><img src="//test.localhost/uploads/default/test_0/original/1X/42792bed56e0662f221c635573264fa7826744bf.png" alt="RED" width="690" height="788"><div class="meta">
        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
        </div></a></div></p>
         to match:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/42792bed56e0662f221c635573264fa7826744bf.png" data-download-href="//test.localhost/uploads/default/test_0/42792bed56e0662f221c635573264fa7826744bf" title="RED"><img src="//test.localhost/uploads/default/test_0/optimized/1X/42792bed56e0662f221c635573264fa7826744bf_2_690x788.png" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">RED</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
      # ./spec/lib/cooked_post_processor_spec.rb:740:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  29) CookedPostProcessor#post_process when processing images with large images generates overlay information
      Failure/Error:
                  expect(cpp.html).to match_html <<~HTML
                    <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="logo.png"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
                  HTML

        after sanitizing for extra white space and compactness, expected:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/2/226f54f14b0598565102b28645b46d185fc9e074.png" data-download-href="//test.localhost/uploads/default/test_0/226f54f14b0598565102b28645b46d185fc9e074" title="logo.png"><img src="//test.localhost/uploads/default/test_0/original/1X/226f54f14b0598565102b28645b46d185fc9e074.png" width="690" height="788"><div class="meta">
        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
        </div></a></div></p>
         to match:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/226f54f14b0598565102b28645b46d185fc9e074.png" data-download-href="//test.localhost/uploads/default/test_0/226f54f14b0598565102b28645b46d185fc9e074" title="logo.png"><img src="//test.localhost/uploads/default/test_0/optimized/1X/226f54f14b0598565102b28645b46d185fc9e074_2_690x788.png" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">logo.png</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
      # ./spec/lib/cooked_post_processor_spec.rb:429:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  30) CookedPostProcessor#post_process when processing images with large images when using subfolders should escape the filename
      Failure/Error: stub_request(:get, "http://#{Discourse.current_hostname}/subfolder#{upload.url}").to_return(status: 200, body: File.new(Discourse.store.path_for(upload)))

      Errno::ENOENT:
        No such file or directory @ rb_sysopen - /home/praj/discourse/public/uploads/default/test_0/original/1X/02e0b630309b80d1e825a507acab66738c6806e4.png
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `initialize'
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `new'
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  31) CookedPostProcessor#post_process when processing images with large images when using subfolders generates overlay information
      Failure/Error: stub_request(:get, "http://#{Discourse.current_hostname}/subfolder#{upload.url}").to_return(status: 200, body: File.new(Discourse.store.path_for(upload)))

      Errno::ENOENT:
        No such file or directory @ rb_sysopen - /home/praj/discourse/public/uploads/default/test_0/original/1X/02e0b630309b80d1e825a507acab66738c6806e4.png
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `initialize'
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `new'
      # ./spec/lib/cooked_post_processor_spec.rb:638:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  32) CookedPostProcessor#post_process when processing images with title and alt generates overlay information using image title and ignores alt
      Failure/Error:
                  expect(cpp.html).to match_html <<~HTML
                    <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost#{upload.url}" data-download-href="//test.localhost/#{upload_path}/#{upload.sha1}" title="WAT"><img src="//test.localhost/#{upload_path}/optimized/1X/#{upload.sha1}_#{OptimizedImage::VERSION}_690x788.png" title="WAT" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
                  HTML

        after sanitizing for extra white space and compactness, expected:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/2X/a/a8535366575dbb938beeb6902a5033c18eb995bd.png" data-download-href="//test.localhost/uploads/default/test_0/a8535366575dbb938beeb6902a5033c18eb995bd" title="WAT"><img src="//test.localhost/uploads/default/test_0/original/1X/a8535366575dbb938beeb6902a5033c18eb995bd.png" title="WAT" alt="RED" width="690" height="788"><div class="meta">
        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg>
        </div></a></div></p>
         to match:
        <p><div class="lightbox-wrapper"><a class="lightbox" href="//test.localhost/uploads/default/test_0/original/1X/a8535366575dbb938beeb6902a5033c18eb995bd.png" data-download-href="//test.localhost/uploads/default/test_0/a8535366575dbb938beeb6902a5033c18eb995bd" title="WAT"><img src="//test.localhost/uploads/default/test_0/optimized/1X/a8535366575dbb938beeb6902a5033c18eb995bd_2_690x788.png" title="WAT" alt="RED" width="690" height="788"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">WAT</span><span class="informations">1750×2000 1.21 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></p>
      # ./spec/lib/cooked_post_processor_spec.rb:684:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  33) Wizard::Builder styling with colors when the default theme has been overridden by a theme without a color scheme should set the right default values
      Failure/Error: expect(colors_field.required).to eq(false)

        expected: false
             got: true

        (compared using ==)

        Diff:
        @@ -1 +1 @@
        -false
        +true

      # ./spec/lib/wizard/wizard_builder_spec.rb:100:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  34) Wizard::Builder styling with colors when the default theme has not been override should set the right default values
      Failure/Error: SiteSetting.find_by(name: "default_theme_id").destroy!

      NoMethodError:
        undefined method `destroy!' for nil:NilClass
      # ./spec/lib/wizard/wizard_builder_spec.rb:71:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  35) Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name
      Failure/Error: expect(colors_field.required).to eq(false)

        expected: false
             got: true

        (compared using ==)

        Diff:
        @@ -1 +1 @@
        -false
        +true

      # ./spec/lib/wizard/wizard_builder_spec.rb:89:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

  36) Wizard::Builder styling with colors when the default theme has been overridden by a theme with a color scheme should set the right default values
      Failure/Error: expect(colors_field.required).to eq(false)

        expected: false
             got: true

        (compared using ==)

        Diff:
        @@ -1 +1 @@
        -false
        +true

      # ./spec/lib/wizard/wizard_builder_spec.rb:112:in `block (5 levels) in <main>'
      # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

Finished in 33 minutes 32 seconds (files took 13.53 seconds to load)
16862 examples, 36 failures, 7 pending

Failed examples:

rspec ./spec/helpers/application_helper_spec.rb:189 # ApplicationHelper application_logo_dark_url when dark theme is present when dark logo is present should return correct url
rspec ./spec/lib/backup_restore/database_restorer_spec.rb:63 # BackupRestore::DatabaseRestorer#restore with real psql restores from PostgreSQL 10
rspec ./spec/models/optimized_image_spec.rb:8 # OptimizedImage.crop should produce cropped images (requires ImageMagick 7)
rspec ./spec/jobs/clean_up_crawler_stats_spec.rb:17 # Jobs::CleanUpCrawlerStats keeps only the top records from the previous day
rspec ./spec/models/report_spec.rb[1:17:1:1] # Report page_view_logged_in request reports with no page_view_logged_in records returns an empty report
rspec ./spec/models/report_spec.rb[1:17:2:1] # Report page_view_logged_in request reports with page_view_logged_in returns a report with data
rspec ./spec/models/report_spec.rb:1194 # Report consolidated_page_views with no data works
rspec ./spec/models/report_spec.rb[1:12:1:1] # Report http_background request reports with no http_background records returns an empty report
rspec ./spec/models/report_spec.rb[1:12:2:1] # Report http_background request reports with http_background returns a report with data
rspec ./spec/models/report_spec.rb[1:10:1:1] # Report http_total request reports with no http_total records returns an empty report
rspec ./spec/models/report_spec.rb[1:10:2:1] # Report http_total request reports with http_total returns a report with data
rspec ./spec/models/report_spec.rb[1:18:1:1] # Report page_view_anon request reports with no page_view_anon records returns an empty report
rspec ./spec/models/report_spec.rb[1:18:2:1] # Report page_view_anon request reports with page_view_anon returns a report with data
rspec ./spec/models/report_spec.rb[1:11:2:1] # Report http_2xx request reports with http_2xx returns a report with data
rspec ./spec/models/report_spec.rb[1:11:1:1] # Report http_2xx request reports with no http_2xx records returns an empty report
rspec ./spec/models/report_spec.rb[1:16:1:1] # Report page_view_crawler request reports with no page_view_crawler records returns an empty report
rspec ./spec/models/report_spec.rb[1:16:2:1] # Report page_view_crawler request reports with page_view_crawler returns a report with data
rspec ./spec/lib/middleware/request_tracker_spec.rb:64 # Middleware::RequestTracker log_request can log requests correctly
rspec ./spec/lib/middleware/request_tracker_spec.rb:53 # Middleware::RequestTracker log_request can exclude/include based on custom header
rspec ./spec/lib/middleware/request_tracker_spec.rb:103 # Middleware::RequestTracker log_request can log Discourse user agent requests correctly
rspec ./spec/lib/middleware/request_tracker_spec.rb:151 # Middleware::RequestTracker log_request when ignoring anonymous page views does not ignore anonymous requests for public sites
rspec ./spec/lib/middleware/request_tracker_spec.rb:166 # Middleware::RequestTracker log_request when ignoring anonymous page views ignores anonymous requests for private sites
rspec ./spec/lib/middleware/request_tracker_spec.rb:27 # Middleware::RequestTracker full request can handle rogue user agents
rspec ./spec/requests/application_controller_spec.rb:443 # ApplicationController#handle_theme selects the theme the user has selected
rspec ./spec/requests/application_controller_spec.rb:489 # ApplicationController#handle_theme does not allow non privileged user to preview themes
rspec ./spec/lib/cooked_post_processor_spec.rb:709 # CookedPostProcessor#post_process when processing images with title only generates overlay information using image title
rspec ./spec/lib/cooked_post_processor_spec.rb:613 # CookedPostProcessor#post_process when processing images with iPhone X screenshots crops the image
rspec ./spec/lib/cooked_post_processor_spec.rb:737 # CookedPostProcessor#post_process when processing images with alt only generates overlay information using image alt
rspec ./spec/lib/cooked_post_processor_spec.rb:426 # CookedPostProcessor#post_process when processing images with large images generates overlay information
rspec ./spec/lib/cooked_post_processor_spec.rb:654 # CookedPostProcessor#post_process when processing images with large images when using subfolders should escape the filename
rspec ./spec/lib/cooked_post_processor_spec.rb:644 # CookedPostProcessor#post_process when processing images with large images when using subfolders generates overlay information
rspec ./spec/lib/cooked_post_processor_spec.rb:681 # CookedPostProcessor#post_process when processing images with title and alt generates overlay information using image title and ignores alt
rspec ./spec/lib/wizard/wizard_builder_spec.rb:99 # Wizard::Builder styling with colors when the default theme has been overridden by a theme without a color scheme should set the right default values
rspec ./spec/lib/wizard/wizard_builder_spec.rb:74 # Wizard::Builder styling with colors when the default theme has not been override should set the right default values
rspec ./spec/lib/wizard/wizard_builder_spec.rb:88 # Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name
rspec ./spec/lib/wizard/wizard_builder_spec.rb:111 # Wizard::Builder styling with colors when the default theme has been overridden by a theme with a color scheme should set the right default values

Randomized with seed 55699




The following specs have failed:
./spec/helpers/application_helper_spec.rb:189
./spec/lib/backup_restore/database_restorer_spec.rb:63
./spec/models/optimized_image_spec.rb:8
./spec/jobs/clean_up_crawler_stats_spec.rb:17
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:1194
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/lib/middleware/request_tracker_spec.rb:64
./spec/lib/middleware/request_tracker_spec.rb:53
./spec/lib/middleware/request_tracker_spec.rb:103
./spec/lib/middleware/request_tracker_spec.rb:151
./spec/lib/middleware/request_tracker_spec.rb:166
./spec/lib/middleware/request_tracker_spec.rb:27
./spec/requests/application_controller_spec.rb:443
./spec/requests/application_controller_spec.rb:489
./spec/lib/cooked_post_processor_spec.rb:709
./spec/lib/cooked_post_processor_spec.rb:613
./spec/lib/cooked_post_processor_spec.rb:737
./spec/lib/cooked_post_processor_spec.rb:426
./spec/lib/cooked_post_processor_spec.rb:654
./spec/lib/cooked_post_processor_spec.rb:644
./spec/lib/cooked_post_processor_spec.rb:681
./spec/lib/wizard/wizard_builder_spec.rb:99
./spec/lib/wizard/wizard_builder_spec.rb:74
./spec/lib/wizard/wizard_builder_spec.rb:88
./spec/lib/wizard/wizard_builder_spec.rb:111

Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:111



The following specs have failed:
./spec/helpers/application_helper_spec.rb:189
./spec/lib/backup_restore/database_restorer_spec.rb:63
./spec/models/optimized_image_spec.rb:8
./spec/jobs/clean_up_crawler_stats_spec.rb:17
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:1194
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:224
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:206
./spec/models/report_spec.rb:224
./spec/lib/middleware/request_tracker_spec.rb:64
./spec/lib/middleware/request_tracker_spec.rb:53
./spec/lib/middleware/request_tracker_spec.rb:103
./spec/lib/middleware/request_tracker_spec.rb:151
./spec/lib/middleware/request_tracker_spec.rb:166
./spec/lib/middleware/request_tracker_spec.rb:27
./spec/requests/application_controller_spec.rb:443
./spec/requests/application_controller_spec.rb:489
./spec/lib/cooked_post_processor_spec.rb:709
./spec/lib/cooked_post_processor_spec.rb:613
./spec/lib/cooked_post_processor_spec.rb:737
./spec/lib/cooked_post_processor_spec.rb:426
./spec/lib/cooked_post_processor_spec.rb:654
./spec/lib/cooked_post_processor_spec.rb:644
./spec/lib/cooked_post_processor_spec.rb:681
./spec/lib/wizard/wizard_builder_spec.rb:99
./spec/lib/wizard/wizard_builder_spec.rb:74
./spec/lib/wizard/wizard_builder_spec.rb:88
./spec/lib/wizard/wizard_builder_spec.rb:111

No examples found.
Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:88

DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set
`legacy_connection_handling` to `false` in your application.

The new connection handling does not support `connection_handlers`
getter and setter.

Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling
 (called from <top (required)> at /home/praj/discourse/config/environment.rb:7)

Run options: include {:locations=>{"./spec/lib/wizard/wizard_builder_spec.rb"=>[88]}}

Randomized with seed 7356
F

Failures:

  1) Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name
     Failure/Error: expect(colors_field.required).to eq(false)

       expected: false
            got: true

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -false
       +true

     # ./spec/lib/wizard/wizard_builder_spec.rb:89:in `block (5 levels) in <main>'
     # ./spec/rails_helper.rb:278:in `block (2 levels) in <top (required)>'

Finished in 0.76303 seconds (files took 5.98 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/lib/wizard/wizard_builder_spec.rb:88 # Wizard::Builder styling with colors when the default theme has been override and the color scheme doesn't have a base scheme fallbacks to the color scheme name

Randomized with seed 7356




The following specs have failed:
./spec/lib/wizard/wizard_builder_spec.rb:88
Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:111

Running Rspec: ./spec/lib/wizard/wizard_builder_spec.rb:88

DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set
`legacy_connection_handling` to `false` in your application.

The new connection handling does not support `connection_handlers`
getter and setter.

Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling
 (called from <top (required)> at /home/praj/discourse/config/environment.rb:7)

Run options: include {:locations=>{"./spec/lib/wizard/wizard_builder_spec.rb"=>[88]}}

Randomized with seed 55393

RSpec is shutting down and will print the summary report... Interrupt again to force quit.
^C

Finished in 0.45834 seconds (files took 3.6 seconds to load)
0 examples, 0 failures

Randomized with seed 55393

praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set proxy null
praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set https-proxy null
praj@LAPTOP-M3AHJNKB:~/discourse$ npm config set registry http://registry.npmjs.org/
praj@LAPTOP-M3AHJNKB:~/discourse$ bundle exec rake autospec
If file watching is not working, you can force polling with: bundle exec rake autospec p l=3
Press [ENTER] to stop the current run
Running Rspec: spec
DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set
`legacy_connection_handling` to `false` in your application.

The new connection handling does not support `connection_handlers`
getter and setter.

Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling
 (called from <top (required)> at /home/praj/discourse/config/environment.rb:7)
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-hbr

        is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-hbr

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-common

        is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-common

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/admin

        is already being watched through: /home/praj/discourse/app/assets/javascripts/admin

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-widget-hbs

        is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-widget-hbs

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse-ensure-deprecation-order

        is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse-ensure-deprecation-order
        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/select-kit

        is already being watched through: /home/praj/discourse/app/assets/javascripts/select-kit

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/pretty-text

        is already being watched through: /home/praj/discourse/app/assets/javascripts/pretty-text

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/discourse

        is already being watched through: /home/praj/discourse/app/assets/javascripts/discourse

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/truth-helpers

        is already being watched through: /home/praj/discourse/app/assets/javascripts/truth-helpers

        MORE INFO: https://github.com/guard/listen/blob/master/README.md
        ** ERROR: directory is already being watched! **

        Directory: /home/praj/discourse/app/assets/javascripts/node_modules/wizard

        is already being watched through: /home/praj/discourse/app/assets/javascripts/wizard

        MORE INFO: https://github.com/guard/listen/blob/master/README.md

Randomized with seed 22377
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DEPRECATION WARNING: ActiveRecord::Base.writing_role is deprecated and will be removed in Rails 7.1.
Use `ActiveRecord.writing_role` instead.
 (called from block (2 levels) in <top (required)> at /home/praj/discourse/spec/rails_helper.rb:304)
..........................................................................................................................................................................................................................................................................................................................................................................................................................FFFF.......................................................................................................................................................................................................................................................................................................................................................................................................F....................................................................................................................................................................................................................................oxipng worker: `oxipng` not found; please provide proper binary or disable this worker (--no-oxipng argument or `:oxipng => false` through options)
.................................................*..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................```

Это указывает на то, что сервер Rails не запущен. Это странно, поскольку, судя по всему, вы выполнили команду. Вам необходимо оставить сервер Rails запущенным в другой сессии терминала перед запуском Ember. Просто запуска фронтенд-сервера Ember недостаточно.

Можете попробовать запустить bin/ember-cli -u из папки discourse?

Спасибо @merefield и @Falco. Локальная настройка завершена. Теперь у меня есть доступ к моему сайту http://localhost:4200/.

Один быстрый вопрос:

У меня есть файл дамп (sql.zip) существующего сайта. Я хочу импортировать эту базу данных в локальную среду. Не могли бы вы подсказать, как выполнить миграцию в локальной среде?

Спасибо,
Pradeepraj RS

Пожалуйста, подскажите, как импортировать мою существующую базу данных в локальную среду?

Спасибо,
Прадипрадж Р.С.

Загрузите его на ту страницу из вашего последнего скриншота и нажмите кнопку «> Восстановить» в строке, где он отображается.

У нас есть документация об этой процедуре по адресу

Спасибо @Falco. База данных успешно восстановлена на моём локальном сайте. Однако URL страницы входа перенаправляет на «живой» сайт. Можешь подсказать, как обновить локальный URL для страницы входа и т.д.?

Использует ли ваш действующий сайт SSO?

Да, @Stephen, на рабочем сайте используется SSO.

То есть вы хотите сказать, что ваша тестовая версия разработки возвращает запрос к вашему провайдеру SSO, который затем перенаправляет на рабочий сайт?

Да, на данный момент перенаправляется только вход на основной сайт.

Отключить SSO на локальной установке согласно документации

Спасибо, @Falco. Проблема с перенаправлением при входе исправлена.

Но у меня есть другая проблема: вход существующих пользователей не работает в моей локальной среде.

Пожалуйста, помогите: после миграции рабочей базы данных в локальную среду существующие логины перестали работать. Я новичок в Discourse и застрял в этой проблеме.

Они не могут войти, потому что вы используете SSO. У них нет паролей.

Вы можете установить пароль с помощью команды:

 rake admin:create

Чтобы установить пароли, не обязательно делая их администраторами.

Вы можете использовать:
http://localhost:4000/session/eviltrout/become

Замените eviltrout на любое имя пользователя, под которым хотите войти. Вы также можете установить пароль администратора и войти под его именем.

Установку для разработки, которую вы имеете, нельзя использовать для обычных пользователей.