Closed moromin closed 2 years ago
BinanceAPIからOHLCデータを取得する処理自体は、もう実装していたので詳細については割愛。
保存するDBのテーブルのスキーマを若干変更。
db/migration/000001_init_schema.up.sql
symbol
interval
id
entity/ohlc.goもフィールドを変更。
entity/ohlc.go
OpenTime
CloseTime
int
time.Time
DBには、CandleStick Binance APIで取得できる情報を基本として、queryとして指定したinterval, symbolといった情報を追加して保存している。
DB周りの処理の流れは、以前のcurrencyの時とほぼ一緒。
currency
ohlc_*.go
db/
sqlc
util/random.go
RandomHogehoge()
現状の処理に使われてないmain.go内のコメントアウトしてる部分だけ消してマージしとくね
main.go
変更点
BinanceAPIからOHLCデータを取得する処理自体は、もう実装していたので詳細については割愛。
保存するDBのテーブルのスキーマを若干変更。
db/migration/000001_init_schema.up.sql
を見てもらうと早いかも。symbol
やinterval
それぞれにid
を設定し、他テーブルと外部キーを用いて連携しようと考えていたが、そこまで実装すると処理が複雑になりそうだったので直接記録するようにした。entity/ohlc.go
もフィールドを変更。OpenTime
,CloseTime
をint
型のUnixTimestampとして保存しようとしていたが、見づらいし、保存したデータを読み込んだ時に再度日時に変換する処理をするのがめんどくさいと思ったので、time.Time
型に変更した。DBには、CandleStick Binance APIで取得できる情報を基本として、queryとして指定した
interval
,symbol
といった情報を追加して保存している。DB周りの処理の流れは、以前の
currency
の時とほぼ一緒。レビューで見てほしいポイント
ohlc_*.go
:このファイルを中心に見て貰えば、DBにOHLCデータを保存する流れは大体わかると思う。db/
:この中のファイルはそこまで気にしなくていいかも(sqlc
を実行した時に勝手に生成・変更されたファイルであって、中身をこのプロジェクトに合うように変更しつつohlc_*.go
に移行させているから)util/random.go
:RandomHogehoge()
関数がテストで使いづらかったので、型ごとに適当なランダム値を返すだけの関数に簡単化した。関連 Issue
参考リンク