[AD]Travala 암호화폐로 유명호텔 싸게 예약하자

steem block 정보 저장을 위한 데이터베이스 구축 #3

in sct •  6 months ago 

안녕하세요 꿀푸입니다.

지난번 생성한 테이블에 key값을 설정하여 테이블을 다시 생성해보겠습니다. 기존 생성된 모델 파일에 primary key와 null 허용 등을 추가하여 아래와 같이 작성을 하였습니다.
9D4AE1AA-C784-4388-A1B6-B485221FCD29.png

테이블을 재 생성하는 방법을 열심히 찾아보았는데 sequelize-CLI로 삭제하는 방법은 찾을 수가 없네요. 그래서 찾은 소스 코드로 작성하여 테이블 재 생성하는 방법 입니다. 다음과 같이 코드를 작성하여 실행하면 기존 테이블이 삭제되고 재 생성이 됩니다.

const models = require('./models');
models.sequelize.sync({force:true}).
then(() => {
console.log('db conn success');
}); 

다만 아주 아주 주의하실 점은 테이블에 데이터가 있다면 다 같이 날아가 버리니 주의 하시길 바랍니다. 코드 실행을 하면 아래와 같이 테이블이 재 생성이 됩니다.

다음으로 테이블에 데이터를 입력하기 위한 코드를 작성해보겠습니다.
B5241AC4-2778-4121-927A-B353D73033BD.png

Steam api 를 이용하여 block 정보를 가져오고 block 안에 있는 트랜잭션을 하나씩 꺼내서 comment인지 비교를 합니다. comment 일 경우 json 형식으로 데이터를 저장하고 한 블록 내에 있는 모든 comment 액션을 comment 배열에 담구요. 다음 sequelize로 생성된 Comments 객체에 bulkCreate 함수를 통해 배열에 있는 모든 데이터를 DB 테이블에 데이터 생성이 가능 합니다. 별도의 query를 작성할 필요가 없으니 정말 편하네요. 데이터도 문제 없이 잘 들어가고 있네요.

위 코드로 5일 정도 돌려보았는데 하루에 쌓이는 데이터는 3만건 정도가 되네요. 중간에 데이터를 다 날려먹어서 다시 첨부터 쌓고 있기는 하지만요.
위 코드를 작성한 이유가 매일 매일 댓글 및 포스팅 관련 통계를 내기 위해 만들어보고자 했는데 다 만들고 나니 의미 있는 통계 데이터를 뽑기가 힘들 거라 생각 됩니다. 데이터가 크게 변동이 있는 것도 아니고 희망적인 데이터가 나오지 않을 것 같구요. 그래서 위 코드는 여기까지 만들어보는 걸로 하고 다른 재미 있는 걸 찾아 보려고 합니다.

나중에 일주일치 정도를 모아서 재미로 보는 통계 자료는 한번 뽑아 보고 싶네요.

감사합니다.


이전글
https://www.steemcoinpan.com/sct/@honeybeerbear/steem-db-1
https://www.steemcoinpan.com/sct/@honeybeerbear/steem-block-2

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  


Congratulations @honeybeerbear!
You raised your level and are now a Dolphin!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.