Symfony: Базовая таблица или представление уже существует: 1050 Таблица'igration_versions 'уже существует - PullRequest
0 голосов
/ 17 апреля 2020

Я сделал что-то ужасно неправильное в своих миграционных версиях, теперь удалил версии из папки миграций, и я получаю эту ошибку, когда пытаюсь запустить что-либо, связанное с миграциями. Может ли кто-нибудь указать мне, в каком направлении начать это исправлять?

Если я отброшу базу данных, а затем make:migration, в базе данных появится таблица migration_versions. После этого, если я пытаюсь запустить

php bin/console doctrine:migrations:migrate

, я получаю сообщение об ошибке:

In AbstractMySQLDriver.php line 38:

  An exception occurred while executing 'CREATE TABLE migration_versions (version VARCHAR(14) NOT NULL, executed_at   
  DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)', PRIMARY KEY(version)) DEFAULT CHARACTER SET utf8mb4 COLL  
  ATE `utf8mb4_unicode_ci` ENGINE = InnoDB':                                                                          

  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists                  


In PDOConnection.php line 43:

  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists  


In PDOConnection.php line 41:

  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists  

Если я затем отбрасываю эту таблицу из БД, я могу запустить php bin\console doctrine:migrations:migrate нормально. Но при попытке выполнить какие-либо дополнительные команды make:migration / doctrine:migrations:migrate я получаю ту же ошибку, что и предыдущая, утверждая, что таблица migration_versions существует.

1 Ответ

1 голос
/ 20 апреля 2020

Та же проблема произошла со мной из-за schema_filter в моей конфигурации. Мой doctrine .yaml-файл (Symfony 4) имел следующее:

doctrine:
    dbal:
        schema_filter: ~^(table_1|table_2|table_3)$~

Мне пришлось просто добавить «миграции_версии» в фильтр схемы следующим образом:

doctrine:
    dbal:
        schema_filter: ~^(migration_versions|table_1|table_2|table_3)$~
...