本文にスキップ
AI News HubLIVE
サイト内リライト2 分で読了

sqlite-utils 4.1 リリース

記事の要約

sqlite-utils 4.1 は 4.0 から数日後の最初のドットリリースであり、いくつかのマイナーな新機能を導入しています。インサートおよびアップサートコマンドに --code オプションが追加され、インラインのPythonコードから行を生成できるようになりました。また、CSV/TSVインポート時に列タイプをオーバーライドする --type オプション、インデックス削除コマンド、標準入力からのSQLクエリ読み取り機能が追加されました。さらに、table.transform() で STRICT モードの切り替えが可能になりました。

sqlite-utils 4.1 リリース
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

sqlite-utils 4.1 は、4.0 リリースからわずか数日後に公開された最初のドットリリースであり、いくつかの便利な新機能をもたらしています。最も注目すべきは、insert および upsert コマンドに追加された --code オプションです。これにより、ユーザーはコマンドライン上で直接 Python コードブロック(または .py ファイルへのパス)を記述し、rows() 関数や rows イテラブルを定義してデータ行を生成できるようになりました。これは従来からある convert コマンドのコードブロック機能の自然な拡張です。

もう一つの実用的な追加は --type オプションです。CSV や TSV のインポート時に自動的に選択される列タイプを上書きできます。例えば、郵便番号のように整数に見えても先頭のゼロを保持するために TEXT として保存したい場合に便利です。これは長年の機能要望でしたが、実装は驚くほどシンプルでした。

インデックス管理に関しては、新しい table.drop_index(name) メソッドと sqlite-utils drop-index コマンドが追加され、名前を指定してインデックスを削除できるようになりました。存在しないインデックスを無視する ignore=True/--ignore オプションもサポートしています。また、sqlite-utils query コマンドは、クエリの代わりに - を渡すことで標準入力から SQL を読み取れるようになりました(例:echo "select * from dogs" | sqlite-utils query dogs.db -)。

upsert 操作では、既存テーブルの主キーを自動推論するようになったため、主キーが設定済みのテーブルに対して upsert を実行する際に --pk を省略できます。これは Codex が提案した改善で、4.0 で追加された Python ライブラリの機能を CLI に反映したものです。

最も重要な新機能は、table.transform() および table.transform_sql() メソッドで strict=True または strict=False を受け付け、テーブルの SQLite STRICT モードを変更できるようになったことです。このオプションを省略すると既存のモードが維持されます。対応する sqlite-utils transform コマンドにも --strict と --no-strict オプションが追加されました。この機能は Evan Hahn の「Prefer STRICT tables in SQLite」という記事に触発されました。著者は GPT-5.6 Sol xhigh Codex を使用して実装し、自動テストだけでなく手動テストを指示することで2つの軽微な問題を発見・修正しました。

要点と分析を開く

記事インテリジェンス

エンジニア上級

要点

  • insert/upsert に --code オプションを追加、インラインPythonコードで行生成
  • 新たに --type オプションでテーブル作成時の列タイプを指定可能に
  • drop-index コマンドと標準入力からのクエリ読み取りをサポート
  • table.transform() で strict=True/False による STRICT モード切り替え

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。