В постгрес у команды TRUNCATE есть очень полезный флаг CASCADE который снесет не только указанную таблицу, но и все на которые есть связи. Собственно тут один товарищ делал фичу, там в процессе были миграции в которых он делал truncate на новые таблицы, чтобы подчистить временные тестовые данные, а при выкатке на прод остался без всей базы
https://twitter.com/mokevnin/status/1807778797933957553
А проблема в том что query builder внутри laravel подкидывает этот флаг CASCADE (вместо дефолтного поведения RESTRICT который запрещает это делать на таблицах с foreign key) если в качестве драйвера используется постгря. Ну и это менять не планируют, ибо не ломать же обратную совместимость для проверенного способа оторвать ноги
3 years passed, Laravel users still truncates their entire databases... Guess how I found out about this issue? Table::truncate() inside the migration deleted our production database yesterday :D https://github.com/laravel/framework/issues/35157
· 07.07.2024
Какой интересный случай)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён