어젯밤에 포럼에서 큰 문제가 발생해서 모든 것을 다시 생성해야 했습니다. 그런데 복원 과정에서 문제가 생겨 실패했습니다. 에러 메시지는 다음과 같습니다.
ERROR: could not create unique index "index_users_on_username_lower"
DETAIL: Key (username_lower)=(lea) is duplicated.
EXCEPTION: psql failed: DETAIL: Key (username_lower)=(lea) is duplicated.
이 문제가 트위터 로그인과 관련이 있을 것 같은데, 복원 과정에서 중복된 username_lower 이름을 변경할 수 있을까요? SQL 파일(꽤 큰 파일입니다)에서 직접 수정해서 다시 업로드하는 것은 어려울 것 같습니다.
저는 SQL을 정말 못합니다. 올바른 테이블을 찾기 위해 username_lower,를 검색했습니다. users 테이블로 안내되었고, 거기서 "lea"를 검색했습니다. 두 개의 Lea 항목을 편집했습니다. 아마 훨씬 쉬운 방법이 있었을 겁니다. 하지만 기억하세요, 저는 SQL을 못합니다. 특히 1.5gb짜리 파일은요. 파일을 저장하세요.
7zip으로 dump.sql 파일을 gzip으로 압축하세요. dump.sql.gz라는 이름의 새 파일이 생성되어야 합니다
/var/discourse/shared/standalone/backups/default/ 경로에 새 폴더를 만드세요. 저는 test를 사용했습니다
인터넷 연결이 좋다면, 백업 파일을 압축 해제했을 때 얻은 uploads 폴더를 업로드하고, 해당 폴더를 /var/discourse/shared/standalone/backups/default/test/ 안에 넣으세요
6.1 저처럼 인터넷 연결이 안 좋다면, 서버에서 백업 파일 이름을 확인하고 이 명령어를 사용해야 합니다: tar xvzf /var/discourse/shared/standalone/backups/default/yourbackupfile.tar.gz -C /var/discourse/shared/standalone/backups/default/test
6.2 test 폴더 안에는 dump.sql.gz 파일과 uploads 폴더가 있어야 합니다. 정상입니다.
test 폴더에 있는 손상된 dump.sql.gz 파일을 대체하기 위해 dump.sql.gz 파일을 업로드하세요
서버에서: cd /var/discourse/shared/standalone/backups/default/test로 이동하세요
백업 파일을 다시 만들어야 합니다. 이전 백업 파일의 정확한 이름을 사용해야 합니다: tar -czvf yourbackupfile.tar.gz uploads/ dump.sql.gz
ftp에서 /var/discourse/shared/standalone/backups/default/로 이동하여, 손상된 백업을 삭제하거나 다른 폴더로 이동하세요
새 백업 파일을 /var/discourse/shared/standalone/backups/default/로 이동하세요