PG::NotNullViolation:错误:“verification_status”列中的空值违反了非空约束

你好,

我刚进行了一次重建(为了移除一些插件,我重复操作了好几次),但系统崩溃并报错如下:

Caused by:
PG::NotNullViolation: ERROR:  null value in column "verification_status" violates not-null constraint
DETAIL:  Failing row contains (-1, -1, d-logo-sketch.png, 14461, null, null, /images/d-logo-sketch.png, 2020-03-15 04:26:28.409885, 2020-03-15 04:26:28.409885, _aa4aed9d6276bab017d3991051fbb9177783abe, null, null, png, null, null, null, f, null, null, null, null).

请问有什么办法可以修复这个问题吗?

谢谢。

2 个赞

我正在处理这个问题,刚做了一个修复,我认为能解决问题:

4 个赞

感谢 @martin

刚刚尝试再次重建,出现相同的错误:

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/tasks/database_tasks.rb:238:in `migrate'
/var/www/discourse/lib/tasks/db.rake:215:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'

由以下原因引起:
PG::NotNullViolation: 错误:列 "verification_status" 中的空值违反了非空约束
详情:失败的行包含 (-1, -1, d-logo-sketch.png, 14461, null, null, /images/d-logo-sketch.png, 2020-03-15 04:26:28.409885, 2020-03-15 04:26:28.409885, _aa4aed9d6276bab017d3991051fbb9177783abe, null, null, png, null, null, null, f, null, null, null, null)。
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.1.0/lib/patches/db/pg.rb:110:in `exec'

不确定这是否相关,但我们同时运行了数据容器和应用容器。

重建数据容器时没有任何问题。

错误仅出现在应用容器上。

如果需要更多信息,请告诉我。

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' 执行失败,返回码为 #<Process::Status: pid 3058 exit 1>
失败位置:/pups/lib/pups/exec_command.rb:112:in `spawn'
执行失败,参数如下:{"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
54cb19cd99ea4d6e68a5d8c5daaecce6ee0b49593ec3b3625a458c73c67a4a0b
** 引导失败 ** 请向上滚动查看更早的错误消息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
1 个赞

该提交尚未到达 tests-passed 分支,因此修复尚未包含在内。

1 个赞

非常感谢 @martin

支持太棒了!非常感激。

在你的补丁下,重建工作得非常顺利。

version: c2a660ead38d278022ba00386887190ba0739544
2 个赞

太棒了!补丁现在处于 tests-passed 状态,方便时请切换回来 :wink:

2 个赞

太棒了 @martin

完成!

已回到 test-passed 状态,这里的生活也恢复正常了。

再次感谢您如此迅速的支持。

2 个赞