This is fairly simple to explain but was extremely annoying to debug:
extract from initializer()
Tortoise.apps = {}
Tortoise._connections = {}
Tortoise._inited = False
extract from get_connection() called by in_transaction() as first statement
if connection_name:
connection = current_transaction_map[connection_name].get()
elif len(Tortoise._connections) == 1: <----- CONNECTIONS ARE EMPTY
connection_name = list(Tortoise._connections.keys())[0]
connection = current_transaction_map[connection_name].get()
else: <----- THIS WILL ALWAYS BE EXECUTED
raise ParamsError(
"You are running with multiple databases, so you should specify"
f" connection_name: {list(Tortoise._connections.keys())}"
)
return connection
This is fairly simple to explain but was extremely annoying to debug:
extract from
initializer()extract from
get_connection()called byin_transaction()as first statement