Dapp을 만들기 위한 학습을 하던 중 truffle migration을 사용하려고 하자 오류가 발생하였다.
1. Node.js 버전 변경 시도
처음엔 관련 오류가 난 곳의 문서들이 node_modules와 관련되어 있어서, node의 버전이 문제인가 싶어서 stack-over flow의 글을 참고하여 node의 버전을 최신 LTS버전으로 바꾸어주었다.
nvm use --lts //최신 lts버전을 사용하겠다.
하지만 문제는 해결되지 않았다.
2. 최신의 depedencies 다운로드
혹시 몰라서 truffle을 사용하기 위한 dependencies들을 docs에 따라 최신으로 다운로드하여줬지만 이 또한 해결되지 않았다.
https://trufflesuite.com/docs/vscode-ext/how-to/install-dependencies/
하지만 생각해 보니 truffle compile과 test는 성공적으로 이루어졌다. 따라서 node.js의 문제는 아닐 것이라고 판단했고, 다시 구글링을 해본 결과 방법을 찾아냈다.
3. truffle migrate --reset 시도
https://github.com/trufflesuite/truffle/issues/849
이분은 나와 코드는 다르지만 같은 이름의 오류를 겪고 있었다.
찾은 해결방법은 migration을 reset 하는 거였다.
잦은 마이그레이션과 테스팅으로 연동되어 있던 Ganache를 사용하여 테스팅 주소를 여러 번 만들어 냈는데, 그러던 중 전에 사용했던 migration기록이 남아있어서 이를 자꾸 덮어쓰다 보니 생긴 문제인 듯했다.
오류 설명을 자세히 들여다보니
TypeError: Cannot read properties of undefined (reading 'call') at lastCompletedMigration 부분을 해석해 보니 최근 완료한 마이그레이션에서 오류가 발생했음을 알 수 있었다.
- 명령어
truffle migrate --reset
위의 명령어를 입력하니 기존에 있던 마이그레이션이 삭제되고 새로운 마이그레이션을 성공적으로 할 수 있었다.
이미 배포된 컨트랙트를 수정하고 다시 배포할 때 쓰는 명령어이니 알아두면 좋을 것 같다.
'프로그래밍 > 트러블슈팅(trouble shooting)' 카테고리의 다른 글
[React] web3.js React-Create-App 사용시 sourcemap 오류 (0) | 2023.03.22 |
---|---|
[truffle] Error: VM Exception while processing transaction: revert -- Reason given: Panic: Arithmetic overflow. (0) | 2023.03.15 |
[JavaScript] Uncaught RangeError: Maximum call stack size exceeded (0) | 2023.01.20 |
[React] A Component is chainging an uncontrolled 에러 (0) | 2022.12.01 |
[Node.js] Node.js 버전 오류 및 버전 변경 방법 (0) | 2022.10.27 |