Skip to content

Error when missing database name in sqlalchemy.create_engine() #66

@clach04

Description

@clach04

It looks like sqlalchemy.create_engine() can be called without a database name, as a quick way to get dialect information (without an actual database connection.

The following fails:

import sqlalchemy

sqlalchemy.create_engine('ingres://')

With error:

Traceback (most recent call last):
  File "C:\code\py\sqlalchemy-ingres\create_engine_bug_no_dbname.py", line 3, in <module>
    sqlalchemy.create_engine('ingres://')
  File "<string>", line 2, in create_engine
  File "C:\code\py\sqlalchemy-ingres\py312venv\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^
  File "C:\code\py\sqlalchemy-ingres\py312venv\Lib\site-packages\sqlalchemy\engine\create.py", line 615, in create_engine
    (cargs_tup, cparams) = dialect.create_connect_args(u)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\code\py\sqlalchemy-ingres\lib\sqlalchemy_ingres\pyodbc.py", line 56, in create_connect_args
    conn_list.append('Database=' + url.database)
                     ~~~~~~~~~~~~^~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions