Как обновить базу данных в Symfony 4? - PullRequest
0 голосов
/ 07 мая 2018

Когда я даю следующую команду:

php bin/console doctrine:schema:update --force

база данных обновляется, но после этого эта команда:

php bin/console doctrine:schema:validate

продолжает говорить, что база данных не синхронизирована (см. Скриншот ниже).

Что я пропускаю / делаю неправильно?

error message

1 Ответ

0 голосов
/ 07 мая 2018

В зависимости от типа базы данных и ОС, тест может выдавать «ложные отрицания», что означает, что ваша база данных уже в порядке, но Doctrine не совсем понимает.Это случилось со мной в нескольких проектах, независимо от версии Symfony (что означает, Symfony 2,3 и 4).

Кроме того, в Symfony 4 вы можете использовать миграции, как описано в документации , то есть:

bin/console make:migration

эта команда создаст файл миграции внутри src/Migrations, но не коснется БД.

Чтобы понять, что происходит (с точки зрения доктрины) вы можете взглянуть на файл миграции: это класс PHP с двумя методами (up() и down()).

Метод up() будет содержать запрос / запросы, необходимые для выравнивания базы данных с файлами сопоставления.

Чтобы применить все ожидающие миграции, выполните:

bin/console doctrine:migrations:migrate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...