Small cleanup
This commit is contained in:
parent
3d94d7df5c
commit
bd4014e1e6
@ -105,7 +105,7 @@ def migrate_trades_and_orders_table(
|
|||||||
|
|
||||||
order_id, trade_id = get_last_sequence_ids(engine, trade_back_name, order_back_name)
|
order_id, trade_id = get_last_sequence_ids(engine, trade_back_name, order_back_name)
|
||||||
|
|
||||||
drop_orders_table(inspector, engine, order_back_name)
|
drop_orders_table(engine, order_back_name)
|
||||||
|
|
||||||
# let SQLAlchemy create the schema as required
|
# let SQLAlchemy create the schema as required
|
||||||
decl_base.metadata.create_all(engine)
|
decl_base.metadata.create_all(engine)
|
||||||
@ -141,7 +141,7 @@ def migrate_trades_and_orders_table(
|
|||||||
from {trade_back_name}
|
from {trade_back_name}
|
||||||
"""))
|
"""))
|
||||||
|
|
||||||
migrate_orders_table(decl_base, engine, order_back_name, cols)
|
migrate_orders_table(engine, order_back_name, cols)
|
||||||
set_sequence_ids(engine, order_id, trade_id)
|
set_sequence_ids(engine, order_id, trade_id)
|
||||||
|
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ def migrate_open_orders_to_trades(engine):
|
|||||||
"""))
|
"""))
|
||||||
|
|
||||||
|
|
||||||
def drop_orders_table(inspector, engine, table_back_name: str):
|
def drop_orders_table(engine, table_back_name: str):
|
||||||
# Drop and recreate orders table as backup
|
# Drop and recreate orders table as backup
|
||||||
# This drops foreign keys, too.
|
# This drops foreign keys, too.
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ def drop_orders_table(inspector, engine, table_back_name: str):
|
|||||||
connection.execute(text("drop table orders"))
|
connection.execute(text("drop table orders"))
|
||||||
|
|
||||||
|
|
||||||
def migrate_orders_table(decl_base, engine, table_back_name: str, cols: List):
|
def migrate_orders_table(engine, table_back_name: str, cols: List):
|
||||||
|
|
||||||
# let SQLAlchemy create the schema as required
|
# let SQLAlchemy create the schema as required
|
||||||
with engine.begin() as connection:
|
with engine.begin() as connection:
|
||||||
|
@ -8,7 +8,7 @@ from unittest.mock import MagicMock
|
|||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
import pytest
|
import pytest
|
||||||
from sqlalchemy import create_engine, inspect, text
|
from sqlalchemy import create_engine, text
|
||||||
|
|
||||||
from freqtrade import constants
|
from freqtrade import constants
|
||||||
from freqtrade.exceptions import DependencyException, OperationalException
|
from freqtrade.exceptions import DependencyException, OperationalException
|
||||||
@ -614,65 +614,6 @@ def test_migrate_new(mocker, default_conf, fee, caplog):
|
|||||||
assert orders[1].order_id == 'stop_order_id222'
|
assert orders[1].order_id == 'stop_order_id222'
|
||||||
assert orders[1].ft_order_side == 'stoploss'
|
assert orders[1].ft_order_side == 'stoploss'
|
||||||
|
|
||||||
caplog.clear()
|
|
||||||
# Drop latest column
|
|
||||||
with engine.begin() as connection:
|
|
||||||
connection.execute(text("alter table orders rename to orders_bak"))
|
|
||||||
inspector = inspect(engine)
|
|
||||||
|
|
||||||
with engine.begin() as connection:
|
|
||||||
for index in inspector.get_indexes('orders_bak'):
|
|
||||||
connection.execute(text(f"drop index {index['name']}"))
|
|
||||||
# Recreate table
|
|
||||||
connection.execute(text("""
|
|
||||||
CREATE TABLE orders (
|
|
||||||
id INTEGER NOT NULL,
|
|
||||||
ft_trade_id INTEGER,
|
|
||||||
ft_order_side VARCHAR NOT NULL,
|
|
||||||
ft_pair VARCHAR NOT NULL,
|
|
||||||
ft_is_open BOOLEAN NOT NULL,
|
|
||||||
order_id VARCHAR NOT NULL,
|
|
||||||
status VARCHAR,
|
|
||||||
symbol VARCHAR,
|
|
||||||
order_type VARCHAR,
|
|
||||||
side VARCHAR,
|
|
||||||
price FLOAT,
|
|
||||||
amount FLOAT,
|
|
||||||
filled FLOAT,
|
|
||||||
remaining FLOAT,
|
|
||||||
cost FLOAT,
|
|
||||||
order_date DATETIME,
|
|
||||||
order_filled_date DATETIME,
|
|
||||||
order_update_date DATETIME,
|
|
||||||
PRIMARY KEY (id),
|
|
||||||
CONSTRAINT _order_pair_order_id UNIQUE (ft_pair, order_id),
|
|
||||||
FOREIGN KEY(ft_trade_id) REFERENCES trades (id)
|
|
||||||
)
|
|
||||||
"""))
|
|
||||||
|
|
||||||
connection.execute(text("""
|
|
||||||
insert into orders ( id, ft_trade_id, ft_order_side, ft_pair, ft_is_open, order_id, status,
|
|
||||||
symbol, order_type, side, price, amount, filled, remaining, cost, order_date,
|
|
||||||
order_filled_date, order_update_date)
|
|
||||||
select id, ft_trade_id, ft_order_side, ft_pair, ft_is_open, order_id, status,
|
|
||||||
symbol, order_type, side, price, amount, filled, remaining, cost, order_date,
|
|
||||||
order_filled_date, order_update_date
|
|
||||||
from orders_bak
|
|
||||||
"""))
|
|
||||||
|
|
||||||
# Run init to test migration
|
|
||||||
init_db(default_conf['db_url'], default_conf['dry_run'])
|
|
||||||
|
|
||||||
assert log_has("trying orders_bak1", caplog)
|
|
||||||
|
|
||||||
orders = Order.query.all()
|
|
||||||
assert len(orders) == 2
|
|
||||||
assert orders[0].order_id == 'buy_order'
|
|
||||||
assert orders[0].ft_order_side == 'buy'
|
|
||||||
|
|
||||||
assert orders[1].order_id == 'stop_order_id222'
|
|
||||||
assert orders[1].ft_order_side == 'stoploss'
|
|
||||||
|
|
||||||
|
|
||||||
def test_migrate_mid_state(mocker, default_conf, fee, caplog):
|
def test_migrate_mid_state(mocker, default_conf, fee, caplog):
|
||||||
"""
|
"""
|
||||||
@ -734,7 +675,8 @@ def test_migrate_mid_state(mocker, default_conf, fee, caplog):
|
|||||||
assert trade.initial_stop_loss == 0.0
|
assert trade.initial_stop_loss == 0.0
|
||||||
assert trade.open_trade_value == trade._calc_open_trade_value()
|
assert trade.open_trade_value == trade._calc_open_trade_value()
|
||||||
assert log_has("trying trades_bak0", caplog)
|
assert log_has("trying trades_bak0", caplog)
|
||||||
assert log_has("Running database migration for trades - backup: trades_bak0, orders_bak0", caplog)
|
assert log_has("Running database migration for trades - backup: trades_bak0, orders_bak0",
|
||||||
|
caplog)
|
||||||
|
|
||||||
|
|
||||||
def test_adjust_stop_loss(fee):
|
def test_adjust_stop_loss(fee):
|
||||||
|
Loading…
Reference in New Issue
Block a user