текущей таблицы? Например есть сущность categories, а в ней есть parent_category_id (которая может привязываться к категории из текущей таблицы).
С разными таблицами я обычно прописываю в миграциях так:
$table->foreign('category_id')
->references('id')
->on('categories');
Но в той ситуации что я описал, что бы создать связь, получается нужно что бы таблица уже была создана. Или foreign нужно в таком случае прописывать уже после создания таблицы? Вот не совсем понятно..
точно также и здесь, только нужно parent_category_id разрешить быть null
получается тогда этот foreign нужно прописывать в отдельной Schema::table...?
Я обычно отдельные миграции делаю для связей. Создание, связи.
на данный вопрос нет однозначного ответа, каждый делай как пожелает
можете показать пример, какой командой создаёте отдельные миграции вы, и как прописываете связи? Я например всегда создаю модель, а к ней привязываю миграцию через php artisan make:model Category -m , а вы получается make:migrate напрямую делаете?
ну я данные из текущей таблицы обычно никак не связывал, но правильно как раз таки связывать, так как связь то есть)
отдельно миграция на создание таблицы отдельно миграция на изменение таблицы, где прописываешь связь
art make:migration add_foreign_key_to_some_table
спасибо
да, я раньше ~ так же делал, только в той же миграции отдельную Schema создавал (от самой таблицы), потом начал всё в одну схему кидать
Ага. А потом ты добавляешь таблицы, добавляешь поля. Будешь старую миграцию редактировать?
да, обычно так и делаю
Ясненько.
зачем старую миграцию редактировать? у данного способа есть не удобство, если ошибешься в описание связи и будет ошибка, то приходится таблицу в ручную удалять и заново, после правки, повторять запуск миграции
Ты не понял мой вопрос.
возможно
ну я обычно захожу в pma и SQL запросами всё правлю, предварительно поправив миграции (на будущее, на случай "перезапуска")
Йаааасно. Давай, удачки.
да но миграция еще не применена, и при применении снова будет попытка создать таблицу, что приведёт к другой ошибке. потому все таки способ, таблица отдельно, связи отдельно более удобный, хотя сам всё в одной таблицы вбиваю, в частности если связи внутри той же таблицы, что создается.
а где можно посмотреть правильные именования миграций (что бы Schema автоматически создавалась), или как правильно это загуглить? С foreign получилось, а вот для добавления колонок не вышло.. На странице доки с laravel migrations что то не увидел, а в php artisan help make:migration тоже не разглядел инструкции как это делается с префиксами(
Обсуждают сегодня