Если создать одиночный индекс ALTER TABLE `products` ADD INDEX `test` (`category_id`);
Будет предупреждение "1831 Duplicate index 'test' defined on the table 'products'. This is deprecated and will be disallowed in a future release", но всё равно оба индекса останутся.
mayton2019, есть индекс для category_id, созданный автоматически MySQL.
Делаю
ALTER TABLE `products` ADD INDEX `test` (`category_id`, `height`);
То есть индекс, который может заменить автоматический. Никаких ошибок и предупреждений нет, изначальный индекс на месте остаётся, новый добавляется.
mayton2019, никакой ошибки нет, потому что я ничего не удаляю. Я только добавляю индекс. Удаление исходного индекса происходит скрытно средствами MySQL, как и написано в документации. Или не происходит, как в случае одного из серверов.
This index might be silently dropped later, if you create another index that can be used to enforce the foreign key constraint
На одном сервере исходный индекс удаляется, на другом нет. Хотя версия MySQL в обоих случаях 5.7 (но на одном из них Percona).
Не могу понять, от чего зависит, будет ли удаляться исходный индекс. Может какая-то настройка есть или это всегда остается на усмотрение MySQL. Но тогда получается, что на разных серверах может быть разный состав индексов.
Итого, ключ заполняется, если:
- модель в состоянии unguarded
- ключ находится в fillable
- ключ не находится в guarded (и guarded не равен [*]), fillable пуст и ключ не начинается с _
Так что пустой guarded да, не сработает. Самое правильное добавить в fillable.
Senseich, вроде все так и должно работать. Трудно сказать, так как я никогда не обновляю код через пуш, всегда есть bare репозиторий отдельный. Попробуйте еще значение updateInstead, оно появилось в какой-то версии Git
camradee, в целом это то же самое. Но, как минимум, ваш вариант не сработает без моего git clean.
Если вы залили новый файл, а потом попытаетесь сделать pull - он выдаст "The following untracked working tree files would be overwritten by merge", потому что git reset не трогает неотслеживаемые файлы.
Руслан Сайфуллин, нельзя. GET-параметры получать только через request("name"), в метод контроллера передаются только параметры роута, заданные не в GET-строке.
Видимо, получается, что как только база поднята из дампа, все эти индексы становятся явно созданными и уже не удаляются самим MySQL.