Транзакция Phinx не работает

Попытка выяснить, как транзакция работает в пакете phinx. Вот мой код миграции, и он не работает. я использую mysql и все в порядке с phinx.yml, Итак стол acme создается в то время как таблица fail не удается, и в phinxlog Таблица. Итак, когда я побежал phinx migrate У меня ошибка SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'acme' already exists, Итак, как я могу использовать транзакции? Я не нашел никаких документов об этом, помогите мне, пожалуйста))

public function up()
{
$this->getAdapter()->beginTransaction();
$this->table('acme')->addColumn('name', 'string')->create();
$this->table('fail')->addColumn('lal', 'failme')->create();
$this->getAdapter()->commitTransaction();
}

1

Решение

Транзакции применяются только к изменениям данных (DML) с помощью mysql. Вы не можете «проводить» изменения определения данных (DDL).

http://dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html

Но другие БД могут (при определенных условиях).

Можно ли откатить операторы CREATE TABLE и ALTER TABLE в основных базах данных SQL?

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]