Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

SQLAlchemy 2.0 cleanup: drop_all bind, dead metadata.bind, sql_query read-only

Offen Anfängerfreundlich
#112 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@dr-rodriguez arbeitet bereits daran.

Seit 13.10.2026.

  • #113 von @dr-rodriguez — offen

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

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.

  1. Bug: base.metadata.drop_all() is called with no bind in create_database (both the Felis and non-Felis branches). In SQLAlchemy 2.0, bind is a required argument (MetaData.drop_all(self, bind, tables=None, checkfirst=True)), so create_database(..., drop_tables=True) raises TypeError: MetaData.drop_all() missing 1 required positional argument: 'bind'. No test currently covers drop_tables=True.
  2. Dead code: base.metadata.bind = engine in load_connection does nothing in SQLAlchemy 2.0, since bound metadata was removed.
  3. Docs: sql_query uses engine.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 for drop_tables=True
  • Remove metadata.bind = engine
  • Document sql_query as read-only (docstring + docs)
Vorherrschende Sprache
Python
Sterne
12
Forks
5
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

In Codespaces öffnen

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus astrodbtoolkit/AstrodbKit

Alle Issues in astrodbtoolkit/AstrodbKit

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.