Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte Adaptée aux débutants
#112 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

@dr-rodriguez y travaille déjà.

Depuis le 13/10/2026.

  • #113 par @dr-rodriguez — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python, sqlalchemy

Piste de recherche

Commence par la fonction create_database, qui appelle base.metadata.drop_all() sans bind dans les branches Felis et non-Felis, puis dans load_connection où se trouve base.metadata.bind = engine, et dans sql_query. Reproduis le bug en appelant create_database(..., drop_tables=True) pour voir le TypeError. C'est terminé quand cet appel s'exécute sans erreur, qu'un nouveau test couvre drop_tables=True, que la ligne morte metadata.bind est supprimée et que sql_query est documentée comme étant en lecture seule.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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)
Langage dominant
Python
Étoiles
12
Forks
5
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

  • Aucun Dockerfile ni fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de astrodbtoolkit/AstrodbKit

Toutes les issues de astrodbtoolkit/AstrodbKit

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.