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

sqlite-utils 4.0rc1 がマイグレーションとネストされたトランザクションを追加

記事の要約

sqlite-utils 4.0rc1 が v4 初のリリース候補として公開されました。主な新機能はデータベースマイグレーションとネストトランザクション(db.atomic())で、いくつかの軽微な互換性のない変更も含まれています。

sqlite-utils 4.0rc1 がマイグレーションとネストされたトランザクションを追加
誤りを報告

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

訂正案内
本文へ

Simon Willison 氏は sqlite-utils 4.0rc1 をリリースしました。これは v4 バージョンの最初のリリース候補です。sqlite-utils は Python ライブラリと CLI ツールを兼ねた SQLite データベース操作ツールで、Python 標準の sqlite3 パッケージの上に高度な操作(複雑なテーブル変換、JSON データからの自動テーブル作成など)を提供します。

今回の RC では、以前の 4.0 alpha 版から 2 つの大きな新機能が追加されました。1 つ目はデータベースマイグレーションのサポートです。これは数年前にリリースされた sqlite-migrate パッケージを若干修正して移植したもので、長年にわたり LLM など様々なプロジェクトで使用されてきた実績があります。migrations.py ファイルでマイグレーションを定義し、Python コードまたは sqlite-utils migrate コマンドで実行します。逆マイグレーションは提供されず、エラーは新しいマイグレーションで修正する設計です。

2 つ目はネストトランザクションのサポートです。db.atomic() コンテキストマネージャを使用することで、SQLite のセーブポイントを活用したネストされたトランザクションを簡単に扱えます。従来はユーザーが直接トランザクション管理を行う必要がありましたが、この新機能により内部トランザクションのみをロールバックするといった柔軟な制御が可能になります。

v4 では互換性のない変更もいくつか含まれています。例えば、upsert 操作は SQLite 3.23.1 以降で INSERT ... ON CONFLICT SET 構文を使用するようになりました(従来は INSERT OR IGNORE と UPDATE の組み合わせ)。デフォルトの浮動小数点型は FLOAT から REAL に変更、テーブル名とカラム名はスキーマ内で角括弧から二重引用符で囲む形式に変更、Python 3.8 のサポートを終了し Python 3.13 を追加、CSV/TSV インポート時の型検出がデフォルトで有効になりました。一部の旧動作はパラメータで復元可能です。

インストールは pip install sqlite-utils==4.0rc1 で行えます。問題があれば Discord または GitHub Issues で報告してください。

要点と分析を開く

記事インテリジェンス

エンジニア上級

要点

  • データベースマイグレーション機能を内蔵。Python または CLI から適用可能。
  • db.atomic() コンテキストマネージャによるネストトランザクションをサポート。
  • upsert 構文の変更やデフォルトの浮動小数点型が REAL になるなど、複数の互換性がなくなる変更。
  • ユーザーによるテストとフィードバックを募集。

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