交易遷移

public function safeUp()
{
    $this->createTable('news', [
        'id' => $this->primaryKey(),
        'title' => $this->string()->notNull(),
        'content' => $this->text(),
    ]);

    $this->insert('news', [
        'title' => 'test 1',
        'content' => 'content 1',
    ]);
}

public function safeDown()
{
    $this->delete('news', ['id' => 1]);
    $this->dropTable('news');
}

實現事務性遷移的一種更簡單的方法是將遷移程式碼放在 safeUp()safeDown() 方法中。這兩種方法與 up()down() 的不同之處在於它們隱含在事務中。因此,如果這些方法中的任何操作失敗,則所有先前的操作將自動回滾。