Andrey
[OK] Nothing to update - your database is already in sync with the current entity metadata.
Andrey
Только я юзнул апдейд
Andrey
bash: show: command not found
Юра
Это команда мускуля
Andrey
аааа
Andrey
понял
Юра
Ну или посмотри в своем редакторе БД
Andrey
Да всё окей внешний ключик нарисован
Юра
И дефолт стоит?
Andrey
сек
Andrey
Не успел проверить это)
Andrey
Я же локально
Andrey
удалил всё
Andrey
Неа
Andrey
Та же ошибка
Andrey
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DEFAULT 34' at line 1
Юра
Гспади
Юра
Знач так
Юра
Удали этот дефинишн Сделай схема апдейт с флагом --dump-sql
Юра
Посмотри что там будет
Юра
Копирни все что после названия столбца идет
Юра
И вставь в дефинишн, добавь дефолт
Юра
И снова апдейт
Andrey
ALTER TABLE news CHANGE project_id project_id INT NOT NULL;
Юра
Вот вставь в дефинишн INT NOT NULL DEFAULT 34
Andrey
Null value not allowed: 1138 Invalid use of NULL value
Юра
Дефолт не обновит тебе существующие строки походу
Юра
Тогда тока sql запрос писать
Юра
Сделай аптейд все на 34 где у тебя нул
Юра
И потом повторяй
Andrey
Видимо придётся
Andrey
Но только суть в том что к бд прода я никак не сделаю sql запрос
Andrey
Он в кластере)
Юра
Ну я ж говорю обычно это миграциями решается
Юра
Сделаешь
Юра
Через doctrine:query:sql
Юра
Команду
Andrey
угу в докерфайле пропишу
Andrey
наверняка сработает
Юра
А у тебя нет доступа к проду?
Andrey
Как таковой доступ к проду в куб прода и тд есть только у сис админа
Andrey
У прогеров нет
Andrey
У меня ток на дев
Юра
Тогда надо миграции делать
Юра
Либо попроси сисадмина sql запрос сделать )
Andrey
Пошлёт)
Andrey
Кстати ни разу по-моему миграции не делал
Andrey
Хоть посомтрю что да как
Юра
Норм тема, советую )
Юра
Без них вот такие вот проблемы потом
Юра
Как вы вообще тогда бд обновляете на проде?
Юра
Если у тебя нет доступа туда
Andrey
Ты можешь при деплое в дкоерфайле прописать все команды которые будут выполнены в контейнере на проде когда он соберётся
Andrey
Всё что хочешь можешь написать он выполнит
Andrey
докерфайле*
Юра
Ну проблема в том что это так с базами не работаеь
Юра
Там инкрементальные апдейты
Юра
А не с нуля все каждый раз
Andrey
Я просто не делал никогда инкрементальных апдейтов, так что не могу сказать но я думаю есть способ
Andrey
Во всяком случае это лучше чем как на некоторых проектах правят прямо на проде)
Юра
А что там каждый раз при деплое собирается новый контейнер?
Andrey
Нет контейнер на самом деле только в первый раз собирается
Andrey
А дальше просто апдейты летят туда
Andrey
Ci/CD
Юра
Вообщем надо тебе миграции настроить. Дописать вызов d:m:migrate при деплое и всё
Andrey
На самом деле мне кажется что они уже настроены за меня)
Andrey
Иначе как бы я до э
Andrey
До этого момента обновлял базу прода
Andrey
Просто видимо я об этом не знал)
Andrey
Надо разобраться
Andrey
Но миграция не накатится если несоответсвие будет в логике.Просто видишь я указываю для поля project nullable false и накатываю новую миграцию на прод а там куча news без project и он говорит constaint violation
Andrey
И вот поэтому я взялся за этот дефолт
Юра
Поэтому в миграции перед доктриновскими запросами ты напишешь апдейт, чтобы не было нулов
Юра
И все заработает
Andrey
наверное) Я пока ещё не разобрался до конца)
Andrey
А ну понятно, я просто всегда юзал bin/console doctrine:schema:update а она автоматом миграции создаёт
Andrey
Я даже не думал об этом если честно
Юра
Не читай про doctrine:migrations:...
Юра
Подскажите часто вижу такие вот безсмысленные сообщения (типо как выше)
Юра
Что это вообще такое?