mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-25 08:15:15 +00:00
compile and update migration package
This commit is contained in:
parent
e18ab13abe
commit
79bfdbf9b6
19
migrations/mysql/20220317125555_fix_trade_indexes.sql
Normal file
19
migrations/mysql/20220317125555_fix_trade_indexes.sql
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
-- +up
|
||||||
|
DROP INDEX trades_symbol ON trades;
|
||||||
|
DROP INDEX trades_symbol_fee_currency ON trades;
|
||||||
|
DROP INDEX trades_traded_at_symbol ON trades;
|
||||||
|
|
||||||
|
-- this index is used for general trade query
|
||||||
|
CREATE INDEX trades_traded_at ON trades (traded_at, symbol, exchange, id, fee_currency, fee);
|
||||||
|
-- this index is used for join clause by trade_id
|
||||||
|
CREATE INDEX trades_id_traded_at ON trades (id, traded_at);
|
||||||
|
-- this index is used for join clause by order id
|
||||||
|
CREATE INDEX trades_order_id_traded_at ON trades (order_id, traded_at);
|
||||||
|
|
||||||
|
-- +down
|
||||||
|
DROP INDEX trades_traded_at ON trades;
|
||||||
|
DROP INDEX trades_id_traded_at ON trades;
|
||||||
|
DROP INDEX trades_order_id_traded_at ON trades;
|
||||||
|
CREATE INDEX trades_symbol ON trades (exchange, symbol);
|
||||||
|
CREATE INDEX trades_symbol_fee_currency ON trades (exchange, symbol, fee_currency, traded_at);
|
||||||
|
CREATE INDEX trades_traded_at_symbol ON trades (exchange, traded_at, symbol);
|
19
migrations/sqlite3/20220317125555_fix_trade_indexes.sql
Normal file
19
migrations/sqlite3/20220317125555_fix_trade_indexes.sql
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
-- +up
|
||||||
|
DROP INDEX IF EXISTS trades_symbol;
|
||||||
|
DROP INDEX IF EXISTS trades_symbol_fee_currency;
|
||||||
|
DROP INDEX IF EXISTS trades_traded_at_symbol;
|
||||||
|
|
||||||
|
-- this index is used for general trade query
|
||||||
|
CREATE INDEX trades_traded_at ON trades (traded_at, symbol, exchange, id, fee_currency, fee);
|
||||||
|
-- this index is used for join clause by trade_id
|
||||||
|
CREATE INDEX trades_id_traded_at ON trades (id, traded_at);
|
||||||
|
-- this index is used for join clause by order id
|
||||||
|
CREATE INDEX trades_order_id_traded_at ON trades (order_id, traded_at);
|
||||||
|
|
||||||
|
-- +down
|
||||||
|
DROP INDEX IF EXISTS trades_traded_at;
|
||||||
|
DROP INDEX IF EXISTS trades_id_traded_at;
|
||||||
|
DROP INDEX IF EXISTS trades_order_id_traded_at;
|
||||||
|
CREATE INDEX trades_symbol ON trades (exchange, symbol);
|
||||||
|
CREATE INDEX trades_symbol_fee_currency ON trades (exchange, symbol, fee_currency, traded_at);
|
||||||
|
CREATE INDEX trades_traded_at_symbol ON trades (exchange, traded_at, symbol);
|
84
pkg/migrations/mysql/20220317125555_fix_trade_indexes.go
Normal file
84
pkg/migrations/mysql/20220317125555_fix_trade_indexes.go
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
package mysql
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/c9s/rockhopper"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
AddMigration(upFixTradeIndexes, downFixTradeIndexes)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func upFixTradeIndexes(ctx context.Context, tx rockhopper.SQLExecutor) (err error) {
|
||||||
|
// This code is executed when the migration is applied.
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_symbol ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_symbol_fee_currency ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_traded_at_symbol ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_traded_at ON trades (traded_at, symbol, exchange, id, fee_currency, fee);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_id_traded_at ON trades (id, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_order_id_traded_at ON trades (order_id, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func downFixTradeIndexes(ctx context.Context, tx rockhopper.SQLExecutor) (err error) {
|
||||||
|
// This code is executed when the migration is rolled back.
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_traded_at ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_id_traded_at ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX trades_order_id_traded_at ON trades;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_symbol ON trades (exchange, symbol);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_symbol_fee_currency ON trades (exchange, symbol, fee_currency, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_traded_at_symbol ON trades (exchange, traded_at, symbol);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
84
pkg/migrations/sqlite3/20220317125555_fix_trade_indexes.go
Normal file
84
pkg/migrations/sqlite3/20220317125555_fix_trade_indexes.go
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
package sqlite3
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/c9s/rockhopper"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
AddMigration(upFixTradeIndexes, downFixTradeIndexes)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func upFixTradeIndexes(ctx context.Context, tx rockhopper.SQLExecutor) (err error) {
|
||||||
|
// This code is executed when the migration is applied.
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_symbol;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_symbol_fee_currency;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_traded_at_symbol;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_traded_at ON trades (traded_at, symbol, exchange, id, fee_currency, fee);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_id_traded_at ON trades (id, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_order_id_traded_at ON trades (order_id, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func downFixTradeIndexes(ctx context.Context, tx rockhopper.SQLExecutor) (err error) {
|
||||||
|
// This code is executed when the migration is rolled back.
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_traded_at;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_id_traded_at;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS trades_order_id_traded_at;")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_symbol ON trades (exchange, symbol);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_symbol_fee_currency ON trades (exchange, symbol, fee_currency, traded_at);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = tx.ExecContext(ctx, "CREATE INDEX trades_traded_at_symbol ON trades (exchange, traded_at, symbol);")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user