Download the PHP package ngyuki/db-migrate without Composer
On this page you can find all versions of the php package ngyuki/db-migrate. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ngyuki/db-migrate
More information about ngyuki/db-migrate
Files in ngyuki/db-migrate
Package db-migrate
Short Description Simple migration tool
License MIT
Homepage https://github.com/ngyuki/php-db-migrate
Informations about the package db-migrate
db migrate
使い方
インストール
composer でインストールします。
設定ファイル
sql/db-migrate.config.php
に設定ファイルを作ります。
マイグレーションスクリプト
マイグレーションスクリプトを作成します。
スクリプトは SQL で記述します。
実行
migrate サブコマンドでマイグレーションを実行します。
status サブコマンドでマイグレーションのステータスを表示します。先頭の *
とマークされたスクリプトが適用済です。未適用ならマークは表示されません。
コマンド
db-migrate status
マイグレーションのステータスを表示します。適用済のバージョンは *
でマークされます。
ファイルが失われている適用済バージョンは missing が表示されます。
すべてのバージョンが適用済で、ファイルが失われてもいなければ終了コードは 0 になります。
未適用のバージョンがあるか、あるいは適用済でも失われたファイルがある場合は終了コードは 1 になります。
db-migrate migrate
マイグレーションを実行します。
-n
オプションを付けると実際には実行しません (dry run)。
-v
オプションを付けると実行した SQL が一緒に表示されます。
ファイルが失われている適用済バージョンは down されます。
マイグレーションのファイル名を指定すると、指定したバージョンまでマイグレーションが実行されます。
指定したファイルとは文字列として比較されるため、存在しないファイル名を指定することもできます。
バージョンは戻すこともできます。
例えば 0
を指定すればすべてのバージョンが戻されます。
db-migrate up
未適用のバージョンを1つだけマイグレーションします。
引数として --all
を付けるとすべての未適用のバージョンがマイグレーションされます。
db-migrate down
適用済のバージョンを1つだけロールバックします。
引数として --all
を付けるとすべての適用済のバージョンがロールバックされます。
引数として --missing
を付けるとマイグレーションファイルが失われているバージョンのみロールバックされます。
db-migrate redo
down -> up を連続して実行します。
db-migrate mark
マイグレーションが適用済であるとマークします。引数としてスクリプトのファイル名を指定します。
なんらかの原因でマイグレーションが失敗したときに、手作業でマイグレーションを行った後に失敗したスクリプトを適用済であるとマークするために使用できます。
引数として --all
を付けるとすべてのスクリプトが適用済であるとマークされます。
db-migrate unmark
マイグレーションが未適用であるとマークします。引数としてスクリプトのファイル名を指定します。
引数として --all
を付けるとすべてのスクリプトが未適用であるとマークされます。
db-migrate exec
指定されたディレクトリのスクリプトを単純に実行します。ディレクトリはカレントディレクトリからの相対パス、または絶対パスで指定してください。
ビューなどは、マイグレーションでバージョン管理するよりも毎回作りなおしたほうが簡単です。このコマンドはそのようなスクリプトを実行するために利用できます。
db-migrate clear
データベースを作り直します。
データベースの中のすべてのテーブルなどが削除されます。マイグレーションが中途半端に失敗して如何ともし難い状況に陥ったときの最終手段として使用してください。
なお、確認用プロンプトとかは表示されないので、十分注意してください。
マイグレーションスクリプト
マイグレーションスクリプトは次のいずれかの形式で作成できます。形式は拡張子で判断されます。
- SQL
- 拡張子
.sql
- 拡張子
- PHP
- 拡張子
.php
- 拡張子
いずれの形式でも実行時のカレントディレクトリは設定ファイルのあるディレクトリです。LOAD DATA LOCAL INFILE
などで他のファイルを参照する場合、設定ファイルのあるディレクトリからの相対パスで記述する必要があります。
SQL
次のような形式で記述します。
{{ down }}
が含まれている行でマイグレーションの UP と DOWN を区切ります。この例では DOWM 全体がコメントになるように記述していますが、次のように記述しても同じです。
SQL はセミコロンでコマンドが区切られているものとして解釈します。ブロックコメント /* ... */
の中のセミコロンは無視しますが、シングルラインコメント -- ...
や文字列リテラルにセミコロンを記述すると誤解釈します。また、ストアドプロシージャなどの内部のセミコロンでも誤解釈します。
PHP
Experimental
仕様がぶれっぶれなので使わないでください。
設定ファイル
設定ファイルはカレントディレクトリから次の順で探索され、最初に見つかったものが使用されます。
sql/db-migrate.config.php
sql/db-migrate.config.php.dist
db-migrate.config.php
db-migrate.config.php.dist
オプション -c
で設定ファイルを指定することもできます。
オプション -c
で指定されたパスがディレクトリの場合、そのディレクトリから次の順で設定ファイルが探索されます。
db-migrate.config.php
db-migrate.config.php.dist
アンドキュメンテッド
- Configure
- Configure::register で設定ファイルの内容を返すクロージャーを仕込めば設定ファイルレスにできる
- composer autoload-dev.files から実行するスクリプトで Configure::register する想定