0
我使用的是CodeIgniter 3.0.3,剛剛開始實施遷移記錄here。由於我不熟悉這些遷移,因此我傾向於犯錯誤,並且在應用遷移時,我的數據庫處於不一致的狀態,在以前的遷移和新遷移之間的中間。Atomic Codeigniter遷移
是否有任何簡單的方法使遷移原子?所以無論他們是成功還是失敗,都沒有中間狀態。
我使用的是CodeIgniter 3.0.3,剛剛開始實施遷移記錄here。由於我不熟悉這些遷移,因此我傾向於犯錯誤,並且在應用遷移時,我的數據庫處於不一致的狀態,在以前的遷移和新遷移之間的中間。Atomic Codeigniter遷移
是否有任何簡單的方法使遷移原子?所以無論他們是成功還是失敗,都沒有中間狀態。
由於CI_Migration
核心類是不可擴展的,似乎只有這樣,才能做到這一點(短替換整個類的)在你遷移到手動使用交易:
class Migration_Add_parent extends CI_Migration {
public function up() {
$this->db->trans_start();
$this->db->query('ALTER TABLE people ADD COLUMN parent int;');
$this->db->query('ALTER TABLE people ADD CONSTRAINT people_parent_fkey FOREIGN KEY (parent) REFERENCES people (id);');
$this->db->trans_complete();
}
public function down() {
$this->db->trans_start();
$this->db->query('ALTER TABLE people DROP CONSTRAINT people_parent_fkey;');
$this->db->query('ALTER TABLE people DROP COLUMN parent;');
$this->db->trans_complete();
}
}