1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-12 19:38:57 +00:00

Upgrade SQLAlchemy version and dispose of db engine

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

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

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):

View File

@ -10,7 +10,7 @@ sentry-sdk==1.5.7
psutil==5.9.0
distro==1.7.0
py-cpuinfo==8.0.0
sqlalchemy==1.4.32
sqlalchemy==1.4.35
aiosqlite===0.17.0
passlib[bcrypt]==1.7.4
python-jose==3.3.0