Upgrade SQLAlchemy version and dispose of db engine

This commit is contained in:
grossmj committed 2022-04-17 17:32:44 +07:00
1 parent 6af1f2afaa
commit 010d7aa49f
3 files changed
+12 -3

No files matched your search

+3 -2
View File
@@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import asyncio
from typing import Callable
@@ -25,7 +24,7 @@ from gns3server.controller import Controller
from gns3server.compute import MODULES
from gns3server.compute.port_manager import PortManager
from gns3server.utils.http_client import HTTPClient
from gns3server.db.tasks import connect_to_db, get_computes
from gns3server.db.tasks import connect_to_db, disconnect_from_db, get_computes
import logging
@@ -90,4 +89,6 @@ def create_shutdown_handler(app: FastAPI) -> Callable:
if PortManager.instance().udp_ports:
log.warning(f"UDP ports are still used {PortManager.instance().udp_ports}")
await disconnect_from_db(app)
return shutdown_handler
+8
View File
@@ -51,6 +51,14 @@ async def connect_to_db(app: FastAPI) -> None:
log.fatal(f"Error while connecting to database '{db_url}: {e}")
async def disconnect_from_db(app: FastAPI) -> None:
# dispose of the connection pool used by the database engine
if getattr(app.state, "_db_engine"):
await app.state._db_engine.dispose()
log.info(f"Disconnected from database")
@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):