From 3b951c3817dd949a6d8f0e63802f8bd7293f00f3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 9 Dec 2018 09:03:17 +0100 Subject: [PATCH] Drop indexes on renamed table avoid naming conflicts on recreate (indexes are not renamed, and keeping them on backup tables does not really make sense). fixes #1396 --- freqtrade/persistence.py | 3 +++ freqtrade/tests/test_persistence.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/freqtrade/persistence.py b/freqtrade/persistence.py index 71752d58e..a393eb318 100644 --- a/freqtrade/persistence.py +++ b/freqtrade/persistence.py @@ -100,6 +100,9 @@ def check_migrate(engine) -> None: # Schema migration necessary engine.execute(f"alter table trades rename to {table_back_name}") + # drop indexes on backup table + for index in inspector.get_indexes(table_back_name): + engine.execute(f"drop index {index['name']}") # let SQLAlchemy create the schema as required _DECL_BASE.metadata.create_all(engine) diff --git a/freqtrade/tests/test_persistence.py b/freqtrade/tests/test_persistence.py index d0a209f40..a7b21bc1d 100644 --- a/freqtrade/tests/test_persistence.py +++ b/freqtrade/tests/test_persistence.py @@ -446,6 +446,8 @@ def test_migrate_new(mocker, default_conf, fee, caplog): # Create table using the old format engine.execute(create_table_old) + engine.execute("create index ix_trades_is_open on trades(is_open)") + engine.execute("create index ix_trades_pair on trades(pair)") engine.execute(insert_table_old) # fake previous backup