SQLAlchemy 2.0 cleanup: drop_all bind, dead metadata.bind, sql_query read-only
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 78/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- python, sqlalchemy
- Bereich
- databases, documentation
Rechercherichtung
Beginne in der Funktion create_database, die in beiden Zweigen (Felis und Nicht-Felis) base.metadata.drop_all() ohne bind aufruft, danach in load_connection, wo base.metadata.bind = engine steht, und in sql_query. Reproduziere den Fehler, indem du create_database(..., drop_tables=True) aufrufst, um den TypeError zu sehen. Fertig ist, wenn dieser Aufruf ohne Fehler läuft, ein neuer Test drop_tables=True abdeckt, die tote Zeile metadata.bind entfernt ist und sql_query als nur lesend dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Issue authored by Claude (Opus 5.5).
I found these while auditing for #103.
- Bug:
base.metadata.drop_all()is called with nobindincreate_database(both the Felis and non-Felis branches). In SQLAlchemy 2.0,bindis a required argument (MetaData.drop_all(self, bind, tables=None, checkfirst=True)), socreate_database(..., drop_tables=True)raisesTypeError: MetaData.drop_all() missing 1 required positional argument: 'bind'. No test currently coversdrop_tables=True. - Dead code:
base.metadata.bind = engineinload_connectiondoes nothing in SQLAlchemy 2.0, since bound metadata was removed. - Docs:
sql_queryusesengine.connect()without a commit. Any INSERT/UPDATE/DELETE sent through it is silently rolled back, so it should be documented as read-only.
Proposed fixes:
-
drop_all()→drop_all(bind=engine)(2 places), plus a test fordrop_tables=True - Remove
metadata.bind = engine - Document
sql_queryas read-only (docstring + docs)
- Vorherrschende Sprache
- Python
- Sterne
- 12
- Forks
- 5
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus astrodbtoolkit/AstrodbKit
-
Nulls and load_tableEvtl. vergeben @dr-rodriguez hat das vor 12 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
astrodbtoolkit/AstrodbKit#109 · 1 Kommentar · 1 zugewiesene Person ·
-
Remove `wcs1d_multispec` reader.Evtl. wieder frei @dr-rodriguez hat das vor 348 Tagen übernommen, und es ist kein Pull Request offen. Offen
astrodbtoolkit/AstrodbKit#105 · 1 zugewiesene Person ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
astrodbtoolkit/AstrodbKit#104 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
astrodbtoolkit/AstrodbKit#101 · 1 Kommentar ·
-
enhancement good first issue
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
astrodbtoolkit/AstrodbKit#100 · 1 Kommentar ·
Alle Issues in astrodbtoolkit/AstrodbKit
Ähnliche Issues
-
bug P2 rust
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
jscott3201/rusty-bacnet#2085 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
evarness-ai/iris-harness#401 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
sistemicorp/scripts#62 ·
-
area/mac help wanted needs-qa
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 76/100