2016-02-14 6 views
0

Я пытаюсь создать довольно сложный спуск в классе доктрины кочевок:Trigger в Doctrine Миграции

https://github.com/2ndQuadrant/audit-trigger/blob/master/audit.sql

Первый порыв был просто поместить весь код триггера в один большой двоичный объект и добавить его

с:

public function up(Schema $schema) 
{ 
    $this->addSql($triggerSqlInABigBlob); 
} 

Однако миграция не может

SQLSTATE[42601]: Syntax error: 7 ERROR: cannot insert multiple commands into a prepared statement 

Возможно ли это в управлении миграцией доктрины? Есть ли обходной путь/наилучшая практика для этого?

ответ

2

addSql В Doctrine's AbstractMigration ожидает одна команда SQL или массив из нескольких команд SQL. То, что вы отправляете, это строка, содержащая несколько команд SQL, что запрещено. Вы можете попробовать:

public function up(Schema $schema) 
{ 
    $this->addSql(explode(';',$triggerSqlInABigBlob)); 
} 

Это должно преобразовать строку в массив, где каждый элемент является одной командой SQL. Однако комментарии могут быть проблемой.

Смежные вопросы