CakePHP を使用して、2 つのスナップショットがあります。2 つの差分を取得し、その差分を使用して非破壊的な MySQL 更新コマンドを生成しようとしています。
これが私がこれまでに持っているもので、alter table MySQLコマンドを返しますが、最初にそのテーブルを作成する必要があるため、これは機能しません。
$this->Schema = new CakeSchema();
$db = ConnectionManager::getDataSource($this->Schema->connection);
$options = array();
$Old = $this->Schema->read($options);
$Schema = $this->Schema->load();
$compare = $this->Schema->compare($Old, $Schema);
$contents = array();
if (empty($table)) {
foreach ($compare as $table => $changes) {
$update = $db->alterSchema(array($table => $changes), $table);
}
}
$this->Installer->query($update);