Вопрос

У меня есть некоторые проблемы с изменением таблицы в миграциях доктрины 2. Следующий код всегда бросает ошибку: Операция «Доктрина DBAB Platforms Angelsplatform :: getaltertableQL» не поддерживается платформой.

Это странно, так как альтернатор поддерживается SQLite.

public function up(Schema $schema)
{
    $user = $schema->getTable('user');
    $user->addColumn('resellerId', 'integer', array(
        'length'        => '10',
        'notnull'       => true,
        'unsigned'      => true,
    ));
}
Это было полезно?

Решение

Несмотря на то, что альтер-таблица «поддерживается» по SQLite, набор разрешенных операций минимален по сравнению с большинством других баз данных (http://www.sqlite.org/lang_altertable.html.), следовательно, почему он считается не поддерживаться доктриной ДБАЛ.

Другие советы

Есть несколько различий, которые я заметил, что между MySQL и SQLite при использовании ORM. Используя доктрину, я обнаружил, что внешние ключевые отношения не поддерживаются в SQLite, как они находятся в MySQL.

Это боль, поскольку я использую SQLite в памяти DBS для модульных тестов, поскольку я не могу гарантировать, что тесты настойчивые, которые проходят в SQLite, также проходят в MySQL.

На самом деле, чтобы получить SQLite в памяти DBS для работы с доктриной, мне пришлось настроить драйвер доктрина SQLite (код в http://thecodeabode.blogspot.com/2010/12/dropping-sqlite-in-memory-databases-in.html.html.) Поскольку синтаксис SQL сгенерирован для сброса базы данных, не удается в памяти DBS.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top