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場合はそのテーブルを削除する必要があります。updown
- 移行クラスが終了したら
migration_version、移行構成ファイル内にバンプします。
- コントローラを作成して移行ライブラリをロードし、これを呼び出すと
$this->migration->current()、データベーステーブルからバージョンがチェックされmigration、移行クラスupまたはdownメソッドが実行されて、手順6で設定した構成ファイルの移行バージョンに到達します。はバージョン2であり、構成は5を使用する必要があることを示しています。その後、、、、filenamesを使用して移行のメソッドを順番にup実行します。小さい数値を設定すると、現在のメソッドが呼び出されます。データベースは0からカウントを開始するため、ファイルを作成しないでください。003_...004_...005_..down000_...
冒険心がある場合は、移行クラスをロードし、get_instance()->migration->latest()ページのロードごとに実行するフックを作成して、新しい移行クラスをデプロイすると、すべての環境でデータベースが自動更新されるようにすることができます。