Дмитрий
сохоранять по 100-1000 штук
все равно что-то медленно сохраняет :)
Aleksei
еще нужно clear добавить
Aleksei
чтобы память чистить
Дмитрий
добавил, после сохранения пакета clear
Aleksei
ну посмотрите дебагером где тормозит
Aleksei
и перепишите на pdo
Aleksei
=)
Дмитрий
я из консоли запускаю
Aleksei
я не против
Kirill
new еще можно за цикл вынести, а в цикле делать clone
Danil
Можно еще для экономии памяти $em->getConnection()->getConfiguration()->setSQLLogger(null);
Danil
http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/batch-processing.html
Artem
поделитесь кто как красиво деплоит с CI? хочется через докер с версионированием. чтобы запаковывать в образа ассеты и вендоры или это не тру?
Aleksei
а что мешает сделать dump и потом запаковать?
Artem
я не про мешает, а кто как делает и как получать от этого счастье
Aleksei
делаем composer install && assetic dump && npm i &&bower install && docker build && docker push
Aleksei
на бою docker compose pull && docker compose up
Aleksei
получаем счастье
Artem
на CI такие команды билда?
Aleksei
да, собираем так
Artem
ok, спасибо
Artem
оркестрируете рантаймы через что-нить?
Aleksei
пока нет
Aleksei
первый проект в проде на симфони, и пока не ясно что хотим
Aleksei
и админов у нас нет
Artem
спасибо. почитаю про docker push.
Дмитрий
http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/batch-processing.html
я так делал, все равно медленно. С pdo не пойму почему не работает. Можете пример дать запроса insert?
Дмитрий
не пойму в чем косяк
Aleksei
https://symfony.com/doc/current/doctrine/dbal.html
Дмитрий
[Doctrine\ORM\Query\QueryException] [Syntax Error] line 0, col 0: Error: Expected SELECT, UPDATE or DELETE, got 'INSERT' [Doctrine\ORM\Query\QueryException] INSERT INTO aab_logins ( login, filial, city, year, month, week ) VALUES ( '0891245478', 'KLG', 0, 2016, 9, 0) return $this->getEntityManager()->createQuery($query)->getResult(); Этот код в repository вызывается при выполнении консольной команды Что-то где забыл объявить
Anonymous
в DQL нет INSERT
Aleksei
вам нужно делать не через EM DQL
Дмитрий
а как?
Anonymous
$this->getEntityManager()->getConnection()->exec($query)
Anonymous
ну да, он же sql пытается выполнить
Sergey
а ну да)
Sergey
не заметил)
Danil
http://joxi.ru/LmG46YgU8gEx2l
Danil
Нафига так делать?
Danil
http://joxi.ru/LmG46YgU8gEx2l.jpg
Danil
Кому лень открывать
Ivan
как получить связанный массив при таком запросе? $this->makeQueryBuilder(); $page = $this->qb->where($this->qb->expr()->eq('t.fullUrl', ':fullUrl')) ->setParameter('fullUrl', $fullPath) ->getQuery() ->getResult(Query::HYDRATE_ARRAY); Если убрать Query::HYDRATE_ARRAY то есть связанная коллекция children, а при гидрации он не появляется. Таблица pages, отдельные записи котрой могут быть вложенными через parent_id
Ivan
т.е. связанна сама с собой
Ivan
мне просто результат надо выводить в json, поэтому использую Query::HYDRATE_ARRAY
Anonymous
Ivan, добавлены в select children?
Ivan
хмм, нет
Ivan
у меня в Page Entity прописано /** * @ORM\OneToMany(targetEntity="Page", mappedBy="parent", fetch="EAGER") */ protected $children;
Anonymous
это не имеет значения в данном случае
Ivan
подскажите, плиз, так норм? https://gist.github.com/ElCoyote85/84fd22bd822c51a746212cb75266afce
Anonymous
а зачем $this->qb ?
Anonymous
почему не $qb = $this->makeQueryBuilder() ?
Ivan
там просто такая проверка стоит protected function makeQueryBuilder() { if(!$this->qb) { $this->qb = $this->createQueryBuilder($this->alias); } return $this->qb; }
Ivan
это в базовом асбтракто классе, на случай когда надо аккумулировать фильтры
Anonymous
состояние у репозитория наверное не очень хорошо
Anonymous
а почему children отдельно берутся, если есть page one-to-many children ?
Anonymous
$qb->leftJoin('page.children', 'child')->addSelect('child');
Ivan
обновил гист на Page и абстрактный базовый класс
Ivan
вот я и пытаюсь понять как сделать запросом и получить array типа: ['page' => ['title' => '', 'content' => ''], 'children' => [0 =>[...], 1 => [...]], 'parent' => [...] ]
Anonymous
$page = $this->qb->where('t.fullUrl = :fullUrl') ->leftJoin('t.children', 'child')->addSelect('child') ->setParameter('fullUrl', $fullPath) ->getQuery() ->getOneOrNullResult(Query::HYDRATE_ARRAY);
Ivan
хмм..
Ivan
щас попробую
Ivan
Воу, тёзка, работает! Спасибо огромное! Теперь буду пытаться понять как это работает)
Модератор
Привет, Sublime Bot! Пожалуйста соблюдай правила и не ругайся /help@AngryModerBot
Yuriy
/help@AngryModerBot
Модератор
Я бот-модератор для чатов, помогу тебе следить за ними пока тебя нет Что я могу? • Приветствовать новых участников чата • Предупреждать и банить пользователей за мат в чате • Вести статистику по сообщениям, по забаненным участникам чата • Устраивать голосование за бан Что бы я мог банить в чатах - мне нужно выдать права администратора (Делается как и с людьми, но по нику) Присоединяйся к веселому общению в International Chat! Нажми и начинай общаться! @ICGroup
Модератор
Привет, finkel! Пожалуйста соблюдай правила и не ругайся /help@AngryModerBot
fink3L
всем привет)
fink3L
Подскажите, может кто сталкивался?
fink3L
В двух словах, есть 2 класса сущностей, абстрактная сущность BaseUser и реализация User, надо сделать CRUD для сущности User. Маппинг доктрины для всех свойств описан в xml, к сущности BaseUser, у сущности User описан маппинг только для одного свойства. SonataAdmin не видит маппинг родительского класса, другими словами, считает что у сущности User только одно свойство.
fink3L
Причем если переносим маппинг в xml для класса User, то все работает
Kirill
а другие сущности есть в бандле? как у них маппинг описан?
Kirill
может я ошибаюсь, но кажется в рамках одного бандла можно маппинг описывать только одним способом для всех сущностей. например если у одной xml, у другой аннотациями не получится сделать
fink3L
абстрактный класс из другого бандла, но тоже xml
fink3L
если в маппинге наследника пытаешься описать свойства еще раз, доктрина ругается
fink3L
если переносишь маппинг, с родителя на наследника, то все ок, но это не правильно
fink3L
причем пробовал продублировать маппинг через attribute-overrides, он два раз его парсит и второй раз не видит маппинг родителя и выдает ошибку мол нечего оверрайдить, причем парсит два раза только если подрубаем сонату к сущности.
fink3L
сейчас буду пытаться воспроизвести на чистом проекте