Migrationsクラスを探しているようですね。これはかなり新しいライブラリであり、現時点でのドキュメントは私の意見ではあまり良くありません。
このライブラリを有効にしapplication/config/migrations.php
てロードすると、というデータベーステーブルが作成されますmigrations
。そこからのワークフローは次のとおりです。
- 新しいファイルを作成
application/migrations
します。必ず、のような連番のファイル名で名前を付けてください001_some_descriptive_name.php
。形式は重要です。正確に3つの数字と、その後に少なくとも1つの数字があり_
ます。
- 新しいファイルで、ファイル名にちなんで名付けられたクラスを作成します。そのため、
001_some_descriptive_name.php
はというクラスを保持し、クラスMigration_Some_descriptive_name
を拡張する必要がありCI_Migration
ます。クラス名の大文字と小文字は重要です。最初Migration_
に1つの大文字、次に小文字です。
- クラス内にpublicメソッド
up
とpublicメソッドを作成しますdown
- upメソッド内に、データベースを変更する移行コードを追加します。db forgeライブラリーを使用することも、単なる古い
$this->db->query()
呼び出しを使用することもできます。複数のデータベースシステムをサポートする必要がある場合は、Dbforgeの方が移植性が高く、おそらくそれを使用する方がよいでしょう。
- メソッド内に、
down
の効果を元に戻すコードを追加しますup
。up
列を追加する場合はその列を削除する必要があり、テーブルを作成するdown
場合はそのテーブルを削除する必要があります。up
down
- 移行クラスが終了したら
migration_version
、移行構成ファイル内にバンプします。
- コントローラを作成して移行ライブラリをロードし、これを呼び出すと
$this->migration->current()
、データベーステーブルからバージョンがチェックされmigration
、移行クラスup
またはdown
メソッドが実行されて、手順6で設定した構成ファイルの移行バージョンに到達します。はバージョン2であり、構成は5を使用する必要があることを示しています。その後、、、、filenamesを使用して移行のメソッドを順番にup
実行します。小さい数値を設定すると、現在のメソッドが呼び出されます。データベースは0からカウントを開始するため、ファイルを作成しないでください。003_...
004_...
005_..
down
000_...
冒険心がある場合は、移行クラスをロードし、get_instance()->migration->latest()
ページのロードごとに実行するフックを作成して、新しい移行クラスをデプロイすると、すべての環境でデータベースが自動更新されるようにすることができます。