개발 블로깅/오늘의 TIL

[2019.09.24] 오늘의 TIL - must be owner of table (postgresql sequelize migration error)

Hello이뇽 2019. 9. 25. 09:32

우선 나는 시퀄라이즈가 전역 설치로 되어있다. 

 

# you have to install pg package

테이블 칼럼의 변경사항이 생겨서 sequelize-cli을 이용해서 migration 작업을 하기위해 아래와 같이 명령어를 사용했다. 

sequlize db:migrate

 

그러나 아래와 같은 에러 메세지가 나타났다.

you have to install pg package

뭔지 모를 pg를 설치하라고 하는데, 우선 로컬 설치 전역설치 둘 다 해보았다. 그래도 여전히 pg를 설치하라고 한다.

구글링 결과, 전역 설치된 sequalize를 사용하지 말고, 프로젝트 로컬로 설치해서 로컬 라이브러리에 내장되어있는 cli을 사용하라고 한다. 

그래서 아래와 같이 사용했다. 

.node_moudules/.bin/sequelize db:migrate

 

pg를 계속 설치하라는 에러는 해결을 했다.

 

# must be owner of table 

그러나 바로 다음 문제가 또 발생했다.

must be owner of table '테이블명' 

아마 덤프하면서 데이터베이스의 owner가 트레바리의 ID로 되어있기 때문에 그런 듯 했다. 

그래서 해당 데이터베이스의 owner를 root로 변경하려고 아래와 같이 DB의 owner를 변경하는 명령어를 입력했다.

 

# alter table DB명 owner to root

 

그러나 아래와 같은 에러메세지가 반환이 된다.

must be member of role "root"

뭐지...? 찾아봐도 이를 해결한 방법이 보이지가 않는다. 

이때, 스쳐 지나가듯 지금 DB ssh 접속을 한 계정이 root가 아닌 트레바리인 것이 생각이 났다.

루트로 들어가서 다시 시도를 해 봤다.

변경이 되었다.

 

그리고 이제 migration이 될 것이라 확신하고 시도를 해 봤다.

되지않는다. 여전히 아래와 같은 메세지가 나온다.

must be owner of table '테이블명' 

owner를 변경했는데, 계속 owner이어야 한다고 한다...도저히 원인도 모르겠고 해결 방안을 찾을 수가 없었다. 

그만 포기를 하려던 찰 나, 갑작스레 백엔드 코드의 db config.js 파일이 생각이 났다.!

역시나 user가 트레바리로 되어있다. 이 부분을 root변경 후 migrate를 해 봤다..

 

된다!!!

 

 

 

반응형