Defekte wizard_builder_spec und application_controller_spec auf dem lokalen Rechner

Ich möchte Sie um Hilfe bei defekten Specs auf meinem lokalen Rechner bitten. Heute Morgen habe ich das neueste master-Branch geklont, und 4 Specs schlagen auf meinem lokalen Rechner fehl:

1) Wizard::Builder colors step when the default them hass been override should set the right default values
   Failure/Error: expect(field.required).to eq(false)

     expected: false
          got: true

     (compared using ==)
   # ./spec/components/wizard/wizard_builder_spec.rb:171:in `block (4 levels) in <main>'

2) Wizard::Builder colors step 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/components/wizard/wizard_builder_spec.rb:156:in `block (4 levels) in <main>'

3) ApplicationController#handle_theme selects the theme the user has selected
   Failure/Error: expect(controller.theme_ids).to eq([SiteSetting.default_theme_id])

     expected: [-1]
          got: []

     (compared using ==)
   # ./spec/requests/application_controller_spec.rb:295:in `block (3 levels) in <main>'

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

     expected: [-1]
          got: []

     (compared using ==)
   # ./spec/requests/application_controller_spec.rb:341:in `block (3 levels) in <main>'

Ich verwende postgres 11.5 und habe sichergestellt, dass die Erweiterungen hstore und pg_trgm für discourse_development und discourse_test aktiviert sind:

➜  discourse-master git:(master) ✗ psql --user lis2 discourse_development
psql (11.5 (Ubuntu 11.5-0ubuntu0.19.04.1))
Type "help" for help.

discourse_development=# \dx
                                    List of installed extensions
  Name   | Version |   Schema   |                            Description
---------+---------+------------+-------------------------------------------------------------------
 hstore  | 1.5     | public     | data type for storing sets of (key, value) pairs
 pg_trgm | 1.4     | public     | text similarity measurement and index searching based on trigrams
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

Hier ist eine Liste aller meine Gems und ihrer Versionen:

rake 12.3.2
concurrent-ruby 1.1.5
i18n 1.6.0
minitest 5.11.3
thread_safe 0.3.6
tzinfo 1.2.5
activesupport 5.2.3
builder 3.2.3
erubi 1.8.0
mini_portile2 2.4.0
nokogiri 1.10.4
rails-dom-testing 2.0.3
crass 1.0.4
loofah 2.2.3
rails-html-sanitizer 1.0.4
actionview 5.2.3
rack 2.0.7
rack-test 1.1.0
actionpack 5.2.3
globalid 0.4.2
activejob 5.2.3
mini_mime 1.0.1
mail 2.7.1
actionmailer 5.2.3
activemodel 5.2.3
active_model_serializers 0.8.4
arel 9.0.0
activerecord 5.2.3
public_suffix 3.0.3
addressable 2.5.2
annotate 2.7.5
ast 2.4.0
aws-eventstream 1.0.3
aws-partitions 1.154.0
aws-sigv4 1.1.0
jmespath 1.4.0
aws-sdk-core 3.48.6
aws-sdk-kms 1.17.0
aws-sdk-s3 1.36.1
aws-sdk-sns 1.13.0
ember-source 2.18.2
execjs 2.7.0
barber 0.12.2
coderay 1.1.2
better_errors 2.5.1
debug_inspector 0.0.3
binding_of_caller 0.8.0
msgpack 1.2.10
bootsnap 1.4.4
uniform_notifier 1.12.1
bullet 6.0.0
bundler 1.17.3
byebug 11.0.1
certified 1.0.0
chunky_png 1.3.11
colored2 3.1.2
connection_pool 2.2.2
cppjieba_rb 0.3.3
safe_yaml 1.0.5
crack 0.4.3
css_parser 1.7.0
diff-lcs 1.3
diffy 3.3.0
discourse-ember-source 3.10.0.1
exifr 1.3.6
fspath 3.1.0
image_size 1.5.0
in_threads 1.5.1
progress 3.5.0
discourse_image_optim 0.26.2
docile 1.3.1
email_reply_trimmer 0.1.12
ember-data-source 3.0.2
sprockets 3.7.2
ember-handlebars-template 0.8.0
method_source 0.9.2
thor 0.20.3
railties 5.2.3
jquery-rails 4.3.3
ember-rails 0.18.5
excon 0.64.0
fabrication 2.20.1
fakeweb 1.3.0
multipart-post 2.1.1
faraday 0.15.4
fast_blank 1.0.0
rake-compiler 1.0.7
fast_xor 1.1.3
fast_xs 0.8.0
fastimage 2.1.5
ffi 1.10.0
flamegraph 0.9.5
gc_tracer 1.5.1
guess_html_encoding 0.0.11
hashdiff 0.3.9
hashie 3.6.0
highline 1.7.10
hiredis 0.6.3
hkdf 0.3.0
htmlentities 4.3.4
http_accept_language 2.0.5
jaro_winkler 1.5.2
json 2.2.0
jwt 2.2.1
kgio 2.11.2
libv8 7.3.492.27.1 (x86_64-linux)
rb-fsevent 0.10.3
rb-inotify 0.10.0
ruby_dep 1.5.0
listen 3.1.5
request_store 1.4.1
lograge 0.11.0
logstash-event 1.2.02
logstash-logger 0.26.1
logster 2.3.2
lru_redux 1.1.0
lz4-ruby 0.3.3
maxminddb 0.1.22
memory_profiler 0.9.13
message_bus 2.2.2
metaclass 0.0.4
mini_racer 0.2.6
rack-protection 2.0.7
redis 4.0.1
sidekiq 5.2.7
mini_scheduler 0.12.1
mini_sql 0.2.2
mini_suffix 0.3.0
mocha 1.8.0
mock_redis 0.19.0
moneta 1.1.1
multi_json 1.13.1
multi_xml 0.6.0
mustache 1.1.0
nokogumbo 2.0.1
oauth 0.5.4
oauth2 1.4.1
oj 3.7.12
omniauth 1.9.0
omniauth-oauth2 1.6.0
omniauth-facebook 5.0.0
omniauth-github 1.3.0
omniauth-google-oauth2 0.7.0
omniauth-instagram 1.3.0
omniauth-oauth 1.1.0
ruby-openid 2.7.0
rack-openid 1.3.1
omniauth-openid 1.0.1
omniauth-twitter 1.4.0
sanitize 5.0.0
onebox 1.9.12
openid-redis-store 0.0.2
optimist 3.0.0
parallel 1.17.0
parallel_tests 2.28.0
parser 2.6.3.0
pg 1.1.4
pry 0.12.2
pry-nav 0.3.0
pry-rails 0.3.9
puma 3.12.1
r2 0.2.7
rack-mini-profiler 1.0.2
rails_multisite 2.0.7
rainbow 3.0.0
raindrops 0.19.0
rbtrace 0.4.11
rchardet 1.8.0
redis-namespace 1.6.0
rinku 2.0.6
rotp 3.3.1
rqrcode 0.10.1
rspec-support 3.8.0
rspec-core 3.8.0
rspec-expectations 3.8.3
rspec-mocks 3.8.0
rspec 3.8.0
rspec-html-matchers 0.9.1
rspec-rails 3.8.2
rtlit 0.0.5
ruby-progressbar 1.10.0
unicode-display_width 1.6.0
rubocop 0.69.0
ruby-prof 0.17.0
ruby-readability 0.7.0
rubyzip 1.2.3
sassc 2.0.1
sprockets-rails 3.2.1
tilt 2.0.9
sassc-rails 2.1.1
seed-fu 2.3.9
shoulda-matchers 3.1.3
simplecov-html 0.10.2
simplecov 0.16.1
sshkey 2.0.0
stackprof 0.2.12
test-prof 0.9.0
uglifier 4.1.20
unf_ext 0.0.7.6
unf 0.1.4
unicorn 5.5.1
webmock 3.5.1
webpush 0.3.8
yaml-lint 0.0.10

Sehen Sie etwas Ungewöhnliches, das dazu führen könnte, dass die Specs fehlschlagen? Vielen Dank für Ihre Hilfe.

All of these feel like they are theme / cache related.

Can you try

  • redis-cli flushall
  • dropdb discourse_test
  • rm -fr tmp/*
  • createdb discourse_test
  • RAILS_ENV=test bin/rake db:migrate
  • bin/rake autospec

Save the files with the bust specs do they start working?

Das war’s, es funktioniert jetzt, danke!

Wird postgres 11.5 bereits in der Produktion unterstützt? Ich dachte, es gäbe ein Kompatibilitätsproblem, aber anscheinend liegt das falsch. (Ich habe versucht, Commits zu suchen?)

Diese Einrichtung auf meinem Rechner diente nur Entwicklungszwecken. Die Spezifikationen sind grün, und der grundlegende Smoke-Test war erfolgreich.

Ich habe diesen Beitrag gefunden, in dem erwähnt wird, dass Postgres 11 in Ordnung sein sollte – PostgreSQL 11 Support

Wenn du offene Probleme hast, die spezifisch für PG11 sind, würde ich mich sehr freuen, davon zu hören. Es sollte einfach funktionieren, das ist genau das, was ich auf meinem Entwicklungssystem verwende.

Wir planen, unsere PG-Version in unserem Docker-Image ein paar Monate nach der Veröffentlichung von Version 12 später in diesem Jahr auf 12 zu aktualisieren.

EDIT: Ich hätte eigentlich ein neues Thema eröffnen sollen.
EDIT: Ich möchte nur sichergehen, dass @sam das sieht – entschuldigt bitte, falls es nur auf dem hinteren Herd brennt.

Ich glaube, ich habe ein solches Problem.

Ich habe eine Instanz auf GCP mit PG auf ihrem PostgreSQL 11. Ich musste folgendes tun:

   - exec:
        cd: $home
        cmd:
          - apt -y remove postgresql-client-10
          - apt -y install postgresql-client-11

Das scheint funktioniert zu haben. Im Container erhalte ich Folgendes:

root@community-bootstrap-import:/var/www/discourse# psql --version
psql (PostgreSQL) 11.5 (Debian 11.5-1.pgdg100+1)

Ach, aber Moment!

postgres=> select version();
                                        version                                         
----------------------------------------------------------------------------------------
 PostgreSQL 11.4 on x86_64-pc-linux-gnu, compiled by gcc (Debian 7.3.0-5) 7.3.0, 64-bit
(1 row)

Sollte die Minor-Version eine Rolle spielen?

Ich hatte einen Import durchgeführt, ein Backup erstellt, einige Dinge erledigt und versucht, das Backup wiederherzustellen. Es schlug fehl mit einigen fehlenden Tabellen-Problemen, von denen ich dachte, sie könnten damit zusammenhängen, dass ich etwas nicht verstanden habe.

Also habe ich die Datenbank gelöscht und neu erstellt, dann:

rake db:migrate
discourse backup
discourse enable_restore
discourse restore the-backup-filename

und dann bekomme ich so etwas wie:

...
No metadata file to extract.                                                           
Validating metadata...                                                                 
  Current version: 20190908234054                                                      
  Restored version: 20190908234054
tar: dump.sql: Not found in archive
tar: Exiting with failure status due to previous errors
Extracting dump file...
Creating missing functions in the discourse_functions schema
Cannot restore into different schema, restoring in-place
Enabling readonly mode...
Pausing sidekiq...
Waiting for sidekiq to finish running jobs...
Restoring dump file... (can be quite long)
SET
SET
SET
SET
SET
set_config
------------
(1 row)
SET
SET
SET
SET
ERROR:  schema "public" already exists
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block

und einige Dinge wie:

valid command \n                                                                     
invalid command \n                                                                     
invalid command \.                                                                        
ERROR:  syntax error at or near "1"                                                            
LINE 1: 1 20000225050318 AddSchemaMigrationDetails community-bootstr...                     
^                                                                                                   
invalid command \.                                                                     
ERROR:  syntax error at or near "20000225050318"                                       
LINE 1: 20000225050318                                                                 
^                                                                                      
invalid command \.                                                                     
ERROR:  current transaction is aborted, commands ignored until end of transaction block
invalid command \N                                                                     
invalid command \N                                                                     
invalid command \N                                                                     
invalid command \N                                                                      
invalid command \N                                                                     
invalid command \.                                                                     
ERROR:  syntax error at or near "1"                                                    
LINE 1: 1 10.0.0.0/8 2 0                                                               
^                                                                                      
invalid command \.                                                                     
ERROR:  current transaction is aborted, commands ignored until end of transaction block
invalid command \.                                                                     
ERROR:  current transaction is aborted, commands ignored until end of transaction block
invalid command \.                                                                     
ERROR:  current transaction is aborted, commands ignored until end of transaction block