1

주제: 이미그레이션 수행시 테이블 구조변경 실패에 관해

현재 1.1.0.2 버전을 쓰고 있다가 큰맘먹고 텍스큐브 최신버젼으로 업데이트를 하기 위해

1.1.0.2 => 1.1.1
1.1.1 => 1.1.3
1.1.3 => tc-1.5.3.1

로 이미그레이션을 수행하였습니다.

큰 문제는 없었지만, 이미그레이션을 위해 다음 버젼의 프로그램을 설치하고 관리자메뉴에 접근할때
테이블 구조변경을 시도하더군요. 그런데 제 경우는 구조변경이 계속 실패하였습니다.
그리고는 다시 구조변경에 관한 이야기가 나오지 않길래 이상하게 생각하다가, 1.1.3에서 텍스큐브로 이미그레이션하기 전에
잠시 생각해보니 제가 사용하는 db의 사용자에 alter 권한이 없더군요. (현재 자체 운용중인 서버에서 테터/큐브를 돌리고 있습니다.)
그래서 큐브로 마지막 업데이트 전에 alter 권한을 주었더니 그제서야 제대로 구조가 변경되었습니다.

대부분의 호스팅 업체들은 alter 권한을 반드시 줄 것이나, 간혹 alter 권한이 없는 경우도 있을 것 같습니다.
이 경우 테이블 구조변경에 관한 언급이 다시 나오는 것도 아니어서, 혹시나 블로그 운용에 무슨 문제가 있지나 않을까 영 찜찜하더군요.

가능하다면 구조변경 시도시에 현 사용자가 alter 권한이 있는지 없는지를 체크하여 이에 맞는 추가 안내 및 구조변경 재시도가 있어야 할 것 같습니다.

제 경우 1.1.0.2에서 1.1.3까지의 테이블 구조변경이 모두 실패하였지만, 데이터는 정상적으로 이전되었고 텍스큐브에서도 현재까지는 별다른 이상은 없어보입니다.

2

답글: 이미그레이션 수행시 테이블 구조변경 실패에 관해

alternation이 그 전에 실시되지 않았더라도 TC 1.5.3.1 의 checkup 때 구조 변경을 전부 실시 했을겁니다^^ 1.0.2 이후의 모든 변경사항을 차례대로 검사해서 처리하기 때문에 언제 한 번 체크업 되더라도 한 번만 되면 전부 처리가 됩니다.

alter 권한 체크가 꼭 필요하겠네요. 감사합니다.^^

덧) mysql에서 alter 권한 체크 하는 법 한 줄로 기술해 주실 분 계세요?

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

3

답글: 이미그레이션 수행시 테이블 구조변경 실패에 관해

올리신 글 보고 잠시 생각해보았는데, 정말 딱히 권한을 체크할 방법이 없네요;;
내가 모르는건가 싶어 레퍼런스를 봐도 깔끔하게 떨어지는게 없고..

정크 테이블을 하나 만들어서 그걸 시험삼아 먼저 변경해보는건 좀 지저분하겠죠?;;

4

답글: 이미그레이션 수행시 테이블 구조변경 실패에 관해

으음 PHP의 DBMS 바인딩 함수 중에 그런거 해 주는 함수가 뭔가 있을 법도 한데 잘 안 찾아지네요 하하

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'