8

私はCodeIgniterアプリケーションを持っていて、移行について学びました。とても便利そうなので使い始めたいと思います。しかし、私はすでにかなり複雑なデータベース設定をしています。誰かが私のMYSQL.sqlスキーマファイルから信頼できる初期移行を作成するための合理的な方法を提案できますか?

dbforgeを使用してdb全体を手動で再作成するのは過剰に思えますが、おそらくそれが私がすべきことです。

4

3 に答える 3

10

返信が少し遅れましたが、現在のDBからベース移行ファイルを生成するクイックライブラリをハッキングしました。まだベータ版ですが、私のシステムでは40テーブル以上で動作します

https://github.com/liaan/codeigniter_migration_base_generation

L:

于 2013-06-27T21:33:14.857 に答える
0

SQLファイルを手動でいじっていたところ、JamieRumbelowのスキーマライブラリを発見しました。DBForgeよりもスキーマ操作の管理が少し簡単になりますが、手動で入力する必要があります。

https://github.com/jamierumbelow/codeigniter-schema

誰かが彼のベースモデルとスキーマライブラリのマッシュアップを思いついたので、プロトタイピングがはるかに高速になります

https://github.com/williamknauss/schema_base_model_magic

これにより、CRUDモデルの操作とスキーマを自動化できます

于 2013-03-13T10:02:56.900 に答える
0

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);
}
于 2019-01-24T21:51:44.463 に答える