私はCodeIgniterアプリケーションを持っていて、移行について学びました。とても便利そうなので使い始めたいと思います。しかし、私はすでにかなり複雑なデータベース設定をしています。誰かが私のMYSQL.sqlスキーマファイルから信頼できる初期移行を作成するための合理的な方法を提案できますか?
dbforgeを使用してdb全体を手動で再作成するのは過剰に思えますが、おそらくそれが私がすべきことです。
私はCodeIgniterアプリケーションを持っていて、移行について学びました。とても便利そうなので使い始めたいと思います。しかし、私はすでにかなり複雑なデータベース設定をしています。誰かが私のMYSQL.sqlスキーマファイルから信頼できる初期移行を作成するための合理的な方法を提案できますか?
dbforgeを使用してdb全体を手動で再作成するのは過剰に思えますが、おそらくそれが私がすべきことです。
返信が少し遅れましたが、現在のDBからベース移行ファイルを生成するクイックライブラリをハッキングしました。まだベータ版ですが、私のシステムでは40テーブル以上で動作します
https://github.com/liaan/codeigniter_migration_base_generation
L:
SQLファイルを手動でいじっていたところ、JamieRumbelowのスキーマライブラリを発見しました。DBForgeよりもスキーマ操作の管理が少し簡単になりますが、手動で入力する必要があります。
https://github.com/jamierumbelow/codeigniter-schema
誰かが彼のベースモデルとスキーマライブラリのマッシュアップを思いついたので、プロトタイピングがはるかに高速になります
https://github.com/williamknauss/schema_base_model_magic
これにより、CRUDモデルの操作とスキーマを自動化できます
https://github.com/fastworkx/ci_migrations_generatorにアクセスします
このapplications/migration/001_create_base.phpのようなものが得られます。
public function up() {
## Create Table sis_customer
$this->dbforge->add_field(array(
'id' => array(
'type' => 'VARCHAR',
'constraint' => 40,
'null' => FALSE,
),
'ip_address' => array(
'type' => 'VARCHAR',
'constraint' => 45,
'null' => FALSE,
),
'timestamp' => array(
'type' => 'INT',
'unsigned' => TRUE,
'null' => FALSE,
'default' => '0',
),
'data' => array(
'type' => 'BLOB',
'null' => FALSE,
),
'`datetime_reg` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ',
));
$this->dbforge->create_table("sessions", TRUE);
$this->db->query('ALTER TABLE `sessions` ENGINE = InnoDB');
));
public function down() {
### Drop table sessions ##
$this->dbforge->drop_table("sessions", TRUE);
}