Serezha
https://symfony.com/doc/current/setup/built_in_web_server.html
Sergue
Ребят, такой вопрос, есть поля у сущности - время без даты, типа график работы магазина, есть тип в доктрине Time https://www.doctrine-project.org/projects/doctrine-dbal/en/2.8/reference/types.html#time но там пишут что оно будет конвертиться в DateTime в php, вот вопрос как так DateTime будет без даты существовать?
Сергей
скорее всего будет 01.01.1970 дата. но это не точно
Sergue
но это ведь больше подойдет чем просто в интежер хранить?
Serezha
конечно
Andrew
Парни, такой вопрос. Какой тру вей вернуть файл из queryBuildera. До этого брал из чистого SQL Запроса, и всё было заебись
Andrew
а теперь такая штука
Andrew
Andrew
То что в базе
Andrew
Andrew
Andrew
И код, как отдаю. То что заккоментил, работает с инлайн sql. С билдером ни в какую
Кирилл
Ну так в эксепшене все же видно. По переданному пути ищется файл. А вы передаете не путь, а сразу контент.
Кирилл
Используйте Response, а хедер третьим параметром конструктора передайте.
Anton 🐻
привет. описываю сущности в yml:
oneToMany:
history:
targetEntity: PaymentsBundle\Entity\History
mappedBy: invoice
можно как-то указать чтобы в бд создался констрейнт on delete cascade? MySQL
Maxim Kainov
Anton 🐻
хороший ответ. подробности знаешь?
Anton 🐻
не срабатывает
Anton 🐻
=)
Maxim Kainov
Может для таблицы какие то настройки есть
Anonymous
@akacheetah будет жить. Поприветствуем!
Anonymous
@zaytal будет жить. Поприветствуем!
Yan
Есть кто на DevFest Siberia?
Anton 🐻
опять с доктриной жёпка. делаю ручную миграцию:
ALTER TABLE invoice MODIFY title varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
т.к. доктрина не умеет ставить кодировку через описание ентити.
но затем делаю php bin/console doctrine:schema:update
и доктрина затирает мне мою кодировку!
ALTER TABLE invoice CHANGE title title VARCHAR(120) NOT NULL;
как ей запретить/указать что у этого поля кодировку не трогать?
Serezha
а зачем апдейт схемы?
Serezha
я может из деревни но связки дифф + мигрейт всегда закрывали все потребности
Anton 🐻
а зачем апдейт схемы?
поменялись энтити, нужно обновить бд. новые поля, что-то удалить и т.п. ежедневная же задача.
Serezha
это дифф и мигрейт делают
Anton 🐻
я описываю изменения ентити в yml, их нужно накатить в бд. это делает php bin/console doctrine:schema:update. но сбрасывает кодировку поля которая была установлена через миграцию.
Serezha
я предложил способ который не убивает кодировку и является корректным способом миграции баз на обновленные ентити
Serezha
схема апдейт возможно будет корректным если в аннотациях все описать
Anton 🐻
способ чего? твой способ может из yml ентити обновить состояние бд?
Serezha
про ямлы не знаю давно от них ушли
Anton 🐻
ты про doctrine:migrations:diff b doctrine:migrations:migrate ?
Serezha
https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html
Anton 🐻
но зачем ты скопировал ссылку?
Serezha
чтобы на твой вопрос ответит/ как обновить состояние бд из новой схемы ентити
Serezha
дифф и мигрейт
Anton 🐻
да, ты прав, diff учитывает обновление сущностей. спасибо.
Anton 🐻
но когда делаю diff он тоже сбрасывает кодировку поля!
Anton 🐻
т.е. не учитывает прошлую миграцию в которой она была задана кастомной. MySQL.
Anton 🐻
т.е. я ручками пишу миграцию:
$this->addSql('ALTER TABLE invoice MODIFY title varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
выполняю. затем делаю doctrine:migrations:diff и он откатывает её обратно:
$this->addSql('ALTER TABLE invoice CHANGE title title VARCHAR(120) NOT NULL');
т.к. не умеет работать с кодировками (специфично для MySQL) поэтому решает просто убирать этот параметр.
скока же багов в этом опенсорсе 🤦♂️
Serezha
так вроде норм альтер не учиывает кодировку она по умолчанию общая для таблицы берется
Serezha
на уровне таблицы в аннотациях можно задать а про отдельное поле поведение это возможно не определенный кейс - здесь не доктрина а мускул решает как действовать
Anton 🐻
доктрина создаёт альтер затирающий кодировку для одного поля. проблема пока в этом. задача как раз для одного и только одного поля задать кастомную кодировку.
Maxim Kainov
Maxim Kainov
Anton 🐻
Anton 🐻
Anton 🐻
В любой нормальной компании такое поведение идентифицируется как баг.
Anton 🐻
Доктрина затирает мой альтер сделанный через неё же и не даёт возможности это изменение зафиксировать навечно.
Anton 🐻
Причём я её об этом не простл. Она делает это без согласования со мной и без возможности это предотвратить
Maxim Kainov
Anton 🐻
Запилить костыль с командой?
Anton 🐻
Доктрина делает альтер с отменой кодировки но мускул возвращает ошибку тк в поле уже есть символы другой кодировки. Те генерит некорректный код и до твоего совета даже выполнение не дойдёт.
Maxim Kainov
Maxim Kainov
Быстро я нагуглил, да?
Maxim Kainov
Выше тебе ответили: "на уровне таблицы в аннотациях можно задать а про отдельное поле поведение это возможно не определенный кейс - здесь не доктрина а мускул решает как действовать"
Anton 🐻
Ты проверял это?
Anton 🐻
Я в метро.
Anton 🐻
Но насколько знаю орм поддерживает только коллейт, а чарсет игнорит
Maxim Kainov
Не проверял. Да вообще в доках симфони пишут, что на продакшене нужно использовать миграции, а не schema:update
Maxim Kainov
https://github.com/doctrine/dbal/issues/2352
Anton 🐻
Чтобы сделать миграцию в деве нужно сначала шхема апдатэ сделать
Nikolay
Maxim Kainov
Maxim Kainov
Ты проверял это?
Это для таблицы кодировка, а вот для поля не знаю. А вообще зачем это нужно для одного поля кодировку задавать?
Anton 🐻
Serezha
Емоджи писать чтоб
У меня для эмоджи и были аннотации эти на всех таблицах. В Мускуле 8 эта кодировка уже по дефолту
Anton 🐻
Но у меня не мускул 8
Serezha
На 5.7 с аннотациями работало ок
Maxim Kainov
Емоджи писать чтоб
Почему для эмоджи нужна какая то особенная кодировка? Может нужен другой тип поля? Почему бы не поставить на всю таблицу нужную кодировку? Ну и можно же отдельную таблицу создать для эмоджи?
Anton 🐻
Не надо
Nikolay
продуктивно работа идет... кодировка у поля таблицы уже 4 день меняется )
Maxim Kainov
Anton 🐻
Спизданул хуйню и рад?
Andrew
Господа, никто не знаю, в чем может проблема. Пытаюсь подтянуть файл нового бандла и ловл. экспшн, якобы файла в этом пути нет. ПРи том, что файл по факту есть