Странное поведение у миграций, когда поменял подключение с Posgresql на Oracle.
Смотрите:
class m190325_054540_add_table_news extends Migration {
public function safeUp() {
$this->createTable('news', [
'id' => Schema::TYPE_PK,
'old_id' => Schema::TYPE_INTEGER . ' NOT NULL',
'category_id' => Schema::TYPE_SMALLINT . ' NOT NULL',
'date' => Schema::TYPE_DATETIME . ' NOT NULL',
'title' => Schema::TYPE_STRING . ' NOT NULL',
'text' => Schema::TYPE_TEXT . ' NOT NULL',
'is_published' => Schema::TYPE_BOOLEAN . ' NOT NULL DEFAULT false',
'is_hot' => Schema::TYPE_BOOLEAN . ' NOT NULL DEFAULT false',
'image' => Schema::TYPE_STRING,
'lang' => Schema::TYPE_STRING,
'insert_stamp' => Schema::TYPE_DATETIME . ' NOT NULL',
'update_stamp' => Schema::TYPE_DATETIME . ' NOT NULL',
]);
$this->createIndex('ix-old-id', 'news', 'old_id', true);
$this->createIndex('ix-cat-dt-pub-l', 'news', ['category_id', 'date', 'is_published', 'lang']);
}
/**
* {@inheritdoc}
*/
public function safeDown() {
$this->dropTable('news');
}
}
обычная простейшая миграция, в постгрес проходит без проблем. Оракл же ругается вот так: Exception: ORA-00907: missing right parenthesis.
Какую ему правую скобку надо? Для чего? При этом таблица создается, но запись о примененной миграции не появляется в табличке, где ей положено быть.