遇到了同样的问题。
我尝试了这里列出的方法
但没有奏效。
Ubuntu 系统,重启无效,
./launcher restart app,./launcher start app 无效。
运行 ./launcher rebuild app 时的错误消息
......
111:M 12 Dec 2023 12:11:02.199 * DB 已保存到磁盘
111:M 12 Dec 2023 12:11:02.200 # Redis 已准备好退出,再见...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3553 exit 1>
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec 失败,参数为 {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
引导失败,退出代码为 1
**引导失败** 请向上滚动查找更早的错误消息,可能不止一个。
它说是由之前的错误引起的,我在这里列出它们
I, [2023-12-13T00:50:13.222274 #1] INFO -- : > cd /var/www/discourse & su discourse -c 'bundl e exec rake db:migrate'
2023-12-13 00:50:18.347 UTC [3597] discourse@discourse ERROR: invalid input syntax for type double precision: ""
2023-12-13 00:50:18.347 UTC [3597] discourse@discourse STATEMENT: INSERT INTO locations_topic (topic_id, latitude, longitude, name, street, district, city, state, postalcode, country, count rycode, international_code, locationtype, boundingbox, updated_at, created_at) (
SELECT
tc.topic_id,
(tc.value::json->'geo_location'->>'lat')::FLOAT,
(tc.value::json->'geo_location'->>'lon')::FLOAT,
tc.value::json->'geo_location'->>'name',
tc.value::json->'geo_location'->>'street',
tc.value::json->'geo_location'->>'district',
tc.value::json->'geo_location'->>'city',
tc.value::json->'geo_location'->>'state',
tc.value::json->'geo_location'->>'postalcode',
tc.value::json->'geo_location'->>'country',
tc.value::json->'geo_location'->>'countrycode',
tc.value::json->'geo_location'->>'international_code',
tc.value::json->'geo_location'->>'type',
ARRAY[
(tc.value::json->'geo_location'->'boundingbox'->>0)::FLOAT,
(tc.value::json->'geo_location'->'boundingbox'->>1)::FLOAT,
(tc.value::json->'geo_location'->'boundingbox'->>2)::FLOAT,
(tc.value::json->'geo_location'->'boundingbox'->>3)::FLOAT
],
tc.updated_at,
tc.created_at
FROM topic_custom_fields tc
WHERE tc.name = 'location'
AND tc.value NOT IN ('"{}"', '{}', '')
AND tc.value::json->'geo_location'->>'lat' IS NOT NULL
AND tc.value::json->'geo_location'->>'lon' IS NOT NULL
)
ON CONFLICT DO NOTHING
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)
ERROR: invalid input syntax for type double precision: ""
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'
#--------------
Caused by:
PG::InvalidTextRepresentation: ERROR: invalid input syntax for type double precision: "" (PG:: InvalidTextRepresentation)
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'
以及 docker ps 的消息
/var/discourse# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d3c8e85149a8 local_discourse/app "/sbin/boot" About an hour ago Up 6 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp app