交易迁移
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()
的不同之处在于它们隐含在事务中。因此,如果这些方法中的任何操作失败,则所有先前的操作将自动回滚。