在 Kubernetes 集群中第一次启动时出现的迁移错误

Hi!

I am running the latest version of discourse on a k8s cluster and upon startup and I keep getting this error:

    ERROR:  relation "translation_overrides" does not exist at character 454
STATEMENT:  SELECT a.attname, format_type(a.atttypid, a.atttypmod),
 	       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
 	       c.collname, col_description(a.attrelid, a.attnum) AS comment
 	  FROM pg_attribute a
 	  LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 	  LEFT JOIN pg_type t ON a.atttypid = t.oid
 	  LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
 	 WHERE a.attrelid = '"translation_overrides"'::regclass
 	   AND a.attnum > 0 AND NOT a.attisdropped
 	 ORDER BY a.attnum

I am guessing it has something to do with the initial setup and db migration, but I am wondering if anyone here might know why exactly this keeps happening.

Local setup is run with minikube and error logs are pulled from pgsql pod.
Discourse image used → bitnami/discourse:latest (https://github.com/bitnami/bitnami-docker-discourse)
Postgres image → postgres:11.9

Thank you and cheers!

In this case, I think you should ask it for them, you probably won’t find a solution here, given that you are using an unsupported install.

The place to create an issue is probably:

https://github.com/bitnami/bitnami-docker-discourse/issues

Or you can change your install to an official install (although I don’t know if you can run the official install in a k8s cluster).

1 个赞

Thank you for the help, much appreciated :slight_smile:

Hi all, we have been investigating this issue in Bitnami setups and we traced it back to the Discourse source code, as we could also reproduce it in the vanilla Discourse launcher using the official standalone.yml template:

$ ./launcher rebuild app
...
I, [2021-05-27T10:53:27.612150 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2021-05-27T10:53:30.072954 #1]  INFO -- : docker_manager is already at latest compatible version

I, [2021-05-27T10:53:30.073194 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'

2021-05-27 10:53:32.977 UTC [4354] discourse@discourse ERROR:  relation "translation_overrides" does not exist at character 454
2021-05-27 10:53:32.977 UTC [4354] discourse@discourse STATEMENT:  SELECT a.attname, format_type(a.atttypid, a.atttypmod),
	       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
	       c.collname, col_description(a.attrelid, a.attnum) AS comment
	  FROM pg_attribute a
	  LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
	  LEFT JOIN pg_type t ON a.atttypid = t.oid
	  LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
	 WHERE a.attrelid = '"translation_overrides"'::regclass
	   AND a.attnum > 0 AND NOT a.attisdropped
	 ORDER BY a.attnum

Warning: no type cast defined for type "name" with oid 19. Please cast this type explicitly to TEXT to be safe for future changes.
> Seeding theme and color schemes
I, [2021-05-27T10:53:49.976589 #1]  INFO -- : == 20000225050318 AddSchemaMigrationDetails: migrating ========================
...

请注意,我今天在全新的 (ARM) 安装上遇到了这个问题,作为标准安装,尽管它显示为 ERROR,但似乎并未阻止安装。

I, [2025-02-24T17:48:39.792821 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2025-02-24 17:48:43.887 UTC [389] discourse@discourse ERROR:  relation "translation_overrides" does not exist at character 523
2025-02-24 17:48:43.887 UTC [389] discourse@discourse STATEMENT:  SELECT a.attname, format_type(a.atttypid, a.atttypmod),
	       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
	       c.collname, col_description(a.attrelid, a.attnum) AS comment,
	       attidentity AS identity,
	       attgenerated as attgenerated
	  FROM pg_attribute a
	  LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
	  LEFT JOIN pg_type t ON a.atttypid = t.oid
	  LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
	 WHERE a.attrelid = '"translation_overrides"'::regclass
	   AND a.attnum > 0 AND NOT a.attisdropped
	 ORDER BY a.attnum
	
> Seeding theme and color schemes
I, [2025-02-24T17:49:11.765841 #1]  INFO -- : == 20000225050318 AddSchemaMigrationDetails: migrating ========

我不知道这是否有意义。但我在使用 bitnami chart 在 k8s 中设置 discourse 时遇到了类似的错误,当我将 postgres 密码设置得更长时,它就消失了。不过这可能只是巧合。