А можно SQL запросом в файле миграции задать внешний ключ? Наверно я чего то не догоняю. Если надо сначала маппингом, тогда зачем мне миграции? Не очень как то удобно. Но видимо я запутался.
semki096: 1. И да и нет.
2. Да, вы не понимаете, что такое Doctrine и зачем это нужно. Doctrine предназначена для абстракции от слоя БД и работы с объектами. Вы же продолжаете рассуждать полями и таблицами.
При правильной работе с Doctrine вы определяете сущности, а затем определяете для них маппинг. Далее Doctrine согласно маппингу производит изменения в схеме БД. Если же по вашему маппингу Doctrine генерирует неверную схему - значит вы задали неверный маппинг.
Кажется я начал понимать. Но ведь создание таблиц со связями я могу отдать миграциям, а доктрина пусть уже потом создаёт обьекты из таблиц созданных миграциями. Или я не правильно мыслю?
semki096: Неправильно. Миграции в Doctrine созданы для того, чтобы их автоматически генерировать по маппингу. Вы же хотите поставить всё с ног на голову и делать больше работы, чем от вас требуется.
ага понял, спасибо. а если я потом на рабочем проекте захочу добавить поле и сделать его внешним ключём - я так понял это надо делать через миграцию? При этом файл с маппингом обьекта будет как то изменён? Извините за надоедливость.
semki096: На работающем проекте - все изменения схемы - через миграции. Да, сначала вы измените сущность, затем маппинг, потом вы сгенерируете миграцию, которая сделает схему соответствующей.
Ну и почитайте уже документацию про Doctrine (в том числе на сайте Doctrine, а не только в доке Symfony).