실패하거나 일부 적용된 업그레이드에서 복구

음… :thinking: 이상하네요. 2.9.0.beta2를 새로 설치하고 커밋 5374e587a3으로 빌드한 뒤, 2.9.0.beta3 최신 버전(커밋 6555f0c11b)으로 다시 빌드했는데 아무 문제가 없었거든요…

아마도 문제가 그보다 앞선 곳에서 발생했을 수 있나요?

불필요한 부분을 수동으로 삭제하는 것이 해결책이 될 것 같습니다.

:weary: 솔직히 정확히 무슨 일이 일어나고 있는지 완전히 파악하지 못하고 있습니다. 이 커밋 때문에 Nick이 db/post_migrate/20220107014925_drop_bookmark_polymorphic_columns.rb 파일을 놓치고 있는 건 아닌지 추측해 봅니다.

column drop 명령에 대한 출력이 있었나요?

방금 명령어를 다시 실행해 보았는데, ./launcher enter app를 실행한 후 다음 오류가 발생합니다.

Error response from daemon: Container 69b56d9734c3654d0b0e0661ff612c1020781191d3ec1d866e453747df03fcdf is not running

새로운 문제인가요?

sudo ./launcher enter app 명령으로 앱을 시작하는 데 성공했습니다

제 입력 내용은 다음과 같습니다:

root@discourseSwingrz:~# cd /var/discourse
root@discourseSwingrz:/var/discourse# ./launcher enter app
x86_64 arch detected.
Error response from daemon: Container 69b56d9734c3654d0b0e0661ff612c1020781191d3ec1d866e453747df03fcdf is not running
root@discourseSwingrz:/var/discourse# sudo ./launcher start app
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start app
app
root@discourseSwingrz:/var/discourse# cd /var/discourse
root@discourseSwingrz:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@discourseSwingrz-app:/var/www/discourse# su - postgres
postgres@discourseSwingrz-app:~$ psql
psql (13.2 (Debian 13.2-1.pgdg100+1))
Type "help" for help.

postgres=# ALTER TABLE bookmarks 
postgres-# DROP COLUMN bookmarkable_id
postgres-# DROP COLUMN bookmarkable_type;
ERROR:  syntax error at or near "DROP"
LINE 3: DROP COLUMN bookmarkable_type;
        ^
postgres=# 

이 모든 것에 대한 여러분의 도움을 정말 감사드립니다 :slight_smile:

@pfaffman의 코드를 제대로 입력하고 있는지 잘 모르겠어요?

다음 작업을 수행해 주시겠어요?

  • 백업 만들기 :sweat_smile:
  • 시도해 보기
ALTER TABLE bookmarks 
DROP COLUMN bookmarkable_id;

이렇게 하면 되나요?

Backup done.
Output file is in: /var/www/discourse/public/backups/default/swingrz-2022-04-03-101750-v20220316150247.tar.gz

root@discourseSwingrz-app:/var/www/discourse# ALTER TABLE bookmarks 
bash: ALTER: command not found
root@discourseSwingrz-app:/var/www/discourse# su - postgres
postgres@discourseSwingrz-app:~$ psql
psql (13.2 (Debian 13.2-1.pgdg100+1))
Type "help" for help.

postgres=# ALTER TABLE bookmarks 
postgres-# DROP COLUMN bookmarkable_id;
ERROR:  relation "bookmarks" does not exist
postgres=# 

app.yml 파일을 수정하여 버전 줄의 주석을 해제하고(들여쓰기에 주의하세요)
version: cd7ce52138bed391d5efc56366e7a6517a6079e7
으로 변경한 뒤 다시 빌드해 주시겠습니까?

벤, 버전 줄을 찾을 수가 없네요.

 ## 이 컨테이너는 어떤 Git 리비전을 사용해야 합니까? (기본값: tests-passed)
  #version: tests-passed

이거 맞나요?

+1:

따라서 #version: tests-passed를

version: cd7ce52138bed391d5efc56366e7a6517a6079e7로 교체하세요.

그 다음 /var/discourse/launcher rebuild app을 실행합니다.

다시 빌드하기 전에 이게 맞는지 확인하려고 합니다.

  ## Which Git revision should this container use? (default: tests-passed)
  version: cd7ce52138bed391d5efc56366e7a6517a6079e7

다시 들여쓰기를 해야 하나요?

(beware of the indentation)

지금 코드는 이렇게 보입니다.

## Which Git revision should this container use? (default: tests-passed)
   version: cd7ce52138bed391d5efc56366e7a6517a6079e7

빌드할까요?

아니요, 첫 번째가 좋습니다.

고마워, 벤

지금 다시 빌드할게

#와 정렬되어야 합니다

## 이 컨테이너는 어떤 Git 리비전을 사용해야 하나요? (기본값: tests-passed)
version: cd7ce52138bed391d5efc56366e7a6517a6079e7

첫 번째 답변처럼:

벤, 성공했어요! :grin:

도와주셔서 정말 감사합니다!

(커피나 맥주값 좀 보내도 되니까, 쪽지 보내주세요)