Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン 初心者向け
#112 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

@dr-rodriguez がすでに取り組んでいます。

2026年10月13日 から。

  • #113 @dr-rodriguez による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python, sqlalchemy

調査の方向性

create_database 関数から始めてください。この関数は Felis と非 Felis の両方の分岐で、bind を指定せずに base.metadata.drop_all() を呼び出しています。次に load_connection の base.metadata.bind = engine の箇所、そして sql_query を確認してください。create_database(..., drop_tables=True) を呼び出して TypeError が出ることを再現してください。この呼び出しがエラーなしで実行でき、drop_tables=True をカバーする新しいテストが追加され、不要になった metadata.bind の行が削除され、sql_query が読み取り専用であると文書化されたら完了です。

索引モデルが issue の本文から書いたものです。

説明

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)
主要言語
Python
スター
12
フォーク
5
PR マージ指標
30日以内にマージされた PR はありません

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

astrodbtoolkit/AstrodbKit のほかの issue

astrodbtoolkit/AstrodbKit の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。