YOYO-移行は普通のSQLおよびDB-APIを使用してデータベーススキーマの移行ユーティリティです。
のYOYO-の移行がしないか?の
データベース·アプリケーションが進化するにつれ、データベーススキーマへの変更が頻繁に必要とされる。これらは通常、(任意のSQLやPythonスクリプトがYOYO-の移行で使用することができるが)ALTER TABLEステートメント/ CREATE含むワンオフSQLスクリプトとして記述できます。
YOYO-移行はそのようなスクリプトのディレクトリを読み、必要に応じて、データベースに適用するためのコマンドラインツールを提供します。
のデータベースサポートの
PostgreSQLは、MySQLとSQLiteのデータベースがサポートされています。
使用法
YOYO-の移行は、通常はコマンドラインスクリプトとして呼び出されます。
の例:の
ディレクトリの移行からすべての移行を読み、PostgreSQLデータベースに適用します。
YOYO-移行は./migrations/ postgresの適用://ユーザー:パスワード@ localhostの/データベース
ロールバックの移行は、以前のMySQLデータベースに適用:
YOYO-移行ロールバック./migrations/のmysql://ユーザー:パスワード@ localhostの/データベース
再適用(すなわち、再び適用、ロールバック)位置/home/sheila/important-data.dbでのSQLiteデータベースへの移行:
////home/sheila/important-data.db:再適用./migrations/ SQLiteにYOYO-移行
デフォルトでは、YOYO-の移行が適用され、ロールバックするためにどの移行を選択することを容易にし、それを適用する前に、各移行ファイルの入力を求める、対話モードで起動します。
移行のディレクトリには、移行スクリプトのシリーズを含める必要があります。各マイグレーション·スクリプトは、一連のステップを含むPythonのファイル(の.py)です。各ステップは、移行クエリおよび(オプション)ロールバッククエリを含むべきである。例えば:
#
#ファイル:移行の/ 0001.create-foo.py
#
ステップ(
  "TABLE fooを作成します(のid INT、バーVARCHAR(20)、PRIMARY KEY(ID))」、
  "は、DROP TABLE foo"の、
)
(の.py拡張子なし)各ファイルのファイル名は、それぞれの移行のための識別子として使用されます。移行は、ファイル名の順に適用されますので、(例えば「20090115-xyz.py ')または別の増分番号で日付を使用してファイルに名前を付けると便利です。
YOYO-移行が適用されているの移行を追跡するために、ターゲット·データベース、_yoyo_migrationでテーブルを作成します。
ステップも適用されるの1、ロールバック、またはすべてでなければならないオプション引数IGNORE_ERRORSをとることができる。前の例で、テーブルfooがすでに別の手段によって作成された可能性がある場合、我々は= IGNORE_ERRORSを追加することができ、移行に関係なく続けることができるようにするステップに「適用」:
#
#ファイル:0001.create-foo.py
#
ステップ(
  "TABLE fooを作成します(のid INT、バーVARCHAR(20)、PRIMARY KEY(ID))」、
  "は、DROP TABLE foo"の、
  IGNORE_ERRORSは=「適用」を、
)
ステップも、その一つの引数としてデータベース接続を取るのPython呼び出し可能オブジェクトことができます。例えば:
#
#ファイル:0002.update_keys.py
#
DEF(conn)をdo_step:
 カーソル= conn.cursor()
  cursor.execute(
  "SYSINFO。INSERT INTO"
  "(OSNAME、ホスト名、リリース、バージョン、アーチ)」
  "VALUES(%sの%sは、%sを、%sに、%S%S)」、
  os.uname()
 )
ステップ(do_step)
のパスワードのセキュリティの
通常は、コマンドラインでデータベース接続文字列の一部としてデータベースのユーザー名とパスワードを指定します。マルチユーザマシンで、他のユーザーがプロセスリストでデータベースのパスワードを表示することができます。
-pまたは--prompt-パスワードフラグは、接続文字列で指定されたパスワードを無視して、パスワードを要求するようにYOYO-移行の原因となる。このパスワードは、システムのプロセス·リストを介して他のユーザーが利用できなくなります。
の接続文字列のキャッシュの
あなたは、移行ディレクトリに.yoyo-移行と呼ばれるファイル内のデータベース接続文字列をキャッシュしたい場合は、移行の新しいセットにYOYO-移行初めて実行するときは、尋ねられます。
同じ移行セット上のその後の実行を指定するデータベース接続文字列を必要としないので、このキャッシュは、移行のディレクトリにローカルである。
これは、プロセスのリストでデータベースのユーザー名とパスワードを示すを回避し、あなたがに移動したとき(あなたのコマンド履歴の前のYOYO-移行を再実行エントリによって、すなわち誤って間違ったデータベースにYOYO-移行実行中のリスクを軽減し、入力して保存します別のディレクトリ)。
あなたはこのキャッシュファイルが使用されたくない場合は、コマンドラインオプションに--no-キャッシュパラメータを追加します。
のこのリリースのの新機能:ます。
のため>
- を修正
重要なファイルを省略し、以前のリリースのための- バグ修正:
のバージョン4.2.1にの新機能である。
のバージョン4.1.6にの新機能:
- を追加しましたWindowsサポート(ピーターShinnersのおかげで)
のあるどのバージョン4.1.5のの新しい:
- ロギングハンドラを設定するように-vスイッチ原因コンソール(アンドリューNelisのおかげで)に行くために出力します。
- は `` -v``コマンドラインスイッチは、もはや引数を取るのではなく、複数回指定することができます(つまり、使用することを `` -vvv``の代わりに `` -v3``)。 `` --verbosity``は古い動作が保持されます。
のバージョン4.1.3でのの新機能:バック」_yoyo_migration」に
- に変更デフォルトの移行テーブル名
の要件の
- のPythonます。
コメントが見つかりません