k8s 클러스터에서 새로 시작할 때 발생하는 마이그레이션 오류

안녕하세요!

k8s 클러스터에서 최신 버전의 discourse를 실행 중인데, 시작할 때마다 다음과 같은 오류가 계속 발생하고 있습니다:

    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

초기 설정 및 DB 마이그레이션과 관련이 있을 것 같다고 추측하고 있지만, 정확히 왜 이런 문제가 계속 발생하는지 아는 분이 계실지 궁금합니다.

로컬 환경은 minikube로 실행 중이며, 오류 로그는 pgsql pod에서 가져왔습니다.
사용 중인 Discourse 이미지 → bitnami/discourse:latest (https://github.com/bitnami/bitnami-docker-discourse)
Postgres 이미지 → postgres:11.9

감사드리고, 화이팅입니다!

이 경우, 지원되지 않는 설치 방식을 사용 중이므로 여기서 해결책을 찾기 어려울 것입니다. 해당 문제를 Bitnami 측에 문의하는 것이 좋을 것 같습니다.

이슈를 생성해야 할 곳은 아마도 다음과 같습니다:

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

또는 공식 설치 방식으로 변경할 수 있습니다(다만, k8s 클러스터에서 공식 설치 방식을 실행할 수 있는지는 알 수 없습니다).

도와주셔서 감사합니다. 정말 감사해요 :slight_smile:

안녕하세요, Bitnami 환경에서 이 문제를 조사해 왔으며, 공식 standalone.yml 템플릿을 사용하여 바닐라 Discourse 런처에서도 이를 재현할 수 있었기 때문에 원인이 Discourse 소스 코드에 있는 것으로 파악했습니다:

$ ./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 ========================

의미가 있는지 모르겠습니다. 하지만 이전에 k8s에서 bitnami 차트를 사용해 discourse를 설정할 때 비슷한 오류가 발생했고, postgres 비밀번호를 더 길게 만들자 오류가 사라졌습니다. 다만 우연일 수도 있습니다.