@Kristina8787

Почему не добавляет таблицу в БД после миграции?

В симфони создавала сущности, дифила и мигрировала их,в итоге создавались таблицы в БД, но с последней сущностью почему-то выдает вот такую ошибку, сущность и репозиторий создались, а таблица нет.

[notice] Migrating up to DoctrineMigrations\Version20200628105302
[error] Migration DoctrineMigrations\Version20200628093518 failed during Execution. Error: "An exception occurred while executing 'ALTER TABLE comment ADD is_published TINYINT(1) NOT N
ULL':

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'is_published'"

In AbstractMySQLDriver.php line 65:

  An exception occurred while executing 'ALTER TABLE comment ADD is_published TINYINT(1) NOT NULL':

  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'is_published'


In PDOConnection.php line 43:

  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'is_published'


In PDOConnection.php line 41:

  SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'is_published'


doctrine:migrations:migrate [--write-sql [WRITE-SQL]] [--dry-run] [--query-time] [--allow-no-migration] [--all-or-nothing [ALL-OR-NOTHING]] [--configuration CONFIGURATION] [--db-config
uration DB-CONFIGURATION] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>
]


Делала так, создала новую сущность Category, и потом обновила сущность Post добавив в нее свойство category, потом вводила php bin/console doctrine:migrations:diff, а затем php bin/console doctrine:migrations:migrate. В итоге такая ошибка вот, меняла типы данных указанных в ошибки колонок на просто INT, ошибка не исправилась.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 2
Maksclub
@Maksclub
maksfedorov.ru
Ошибка в миграции Version20200628093518
Она не выполняется из-за того, что в ее инструкции описано добавление поля, которое уже есть в БД...
[error] Migration DoctrineMigrations\Version20200628093518 failed during...


Не известно, добавляется ли ваша таблица в этой же миграции или в следующих, но эта ошибка останавливает дальнейшие инструкции (в том числе создание вашей таблицы)

Вам нужно привести БД в консистентный вид с миграциями таким образом, что схема бд должна совпасть с выполненными инструкциями, которые есть в таблице с отмеченными миграциями
Ответ написан
@sl0
Ошибка довольно очевидна
Column already exists: 1060 Duplicate column name 'is_published'

Если такая колонка уже есть, так удалите ее вручную из миграции и запустите снова.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы