Хороший видос! Можешь смело как Илья Климов писать уроки. Очень толково и внятно объясняешь. 👍
Вопросы по изменению существующего поля (понятно что у них там мелки баг, но очень неприятный)
1) Сейчас по ФАКТУ у тебя в базе удалилось поле аватар или там два поля теперь - аватар и фото?
2) Изменение типа поля как происходит? Например строка в число (и часть значений у тебя буквы, а другая часть записей с цифпвми в виде текста).
3.1) Если поле уже существует в базе. К примеру я его как-то хитро через скрипты свои создал и заполнил числами. Как поведет себя призма когда при создании поля Int, наткнется на уже существующее поле Int.
3.2) Что сделает призма если поле Int уже есть, но оно ее просят создать поле String с тем же именем. Рыгнется или сконвернирует данные?
Если не лень, можно также без подготовки запилякать видео. Реально очень толково получается.
1) Осталось одно поле, avatar переименовалось в photo
2) Если данные уже есть в бд (т.е. нарушается констрейнт) - то только через флаг
--force
, который удалит весь столбец, а если столбец пустой - то просто пересоздаст его (удалит и создаст новый, с новым типом)
Changes:
User (Type)
~ Updated field `string_int`
3.1, 3.2) Коротко: так лучше не делать, будет работать через раз, например если создать поле с другим типом - напишет что всё ок (на самом деле тип в бд останется старый), если после этого поменять тип на другой (через призму) - напишет что всё ок, а если после этого опять через призму поменять обратно на другой тип - ругнётся. Лучше в обход призмы в бд не лезть создавать что-нибудь, такие таблицы лучше создавать в отдельной
schema
в бд. Но если очень нужно - то в призме есть интроспекция бд в схему (т.е. в призму импортируется схема существующей бд)