Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 4 problem with db_viewer.py #54

Open
PaulKlasmann opened this issue Nov 9, 2023 · 1 comment
Open

Chapter 4 problem with db_viewer.py #54

PaulKlasmann opened this issue Nov 9, 2023 · 1 comment

Comments

@PaulKlasmann
Copy link

When running the chapter 4 program db_viewer.py I get the following error:

Traceback (most recent call last): File "/home/xxx/Documents/MyPython/db_viewer.py", line 95, in loadDatabase self.table_names = self.engine.table_names() AttributeError: 'Engine' object has no attribute 'table_names'

I read somewhere that it happens because of a change between the older and current version of the library. Please can someone give the "new" way to do the loading of the database with sqlalchemy? Thank you.

@arichel
Copy link

arichel commented Feb 2, 2025

Hello Paul,

Change 1:

for the current SQLAlchemy release you need to change line 86 in method loadDatabase from:
self.table_names = self.engine.table_names()
to
inspector = inspect(self.engine)
self.table_names = inspector.get_table_names()
and import
from sqlalchemy import inspect

Change 2:

On line 49 of method loadTable change:
metadata = MetaData(self.engine)
to
metadata = MetaData()
metadata.reflect(self.engine)

Change 3

and on line 54 of the same method change:
mapper(GenericDBClass, table)
to
mapper_registry = registry()
mapper_registry.map_imperatively(GenericDBClass, table)
and also import
from sqlalchemy.orm import registry

Hope this solves your issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants