12 уроков залпом проглотил, но тут сделал передышку, просто чтобы сказать: "Господи, какое счастье, что есть такой курс!!" Огромное спасибо автору за труд!! Если напишешь номер карты, скину на пиво!
Отличный курс, спасибо. Ларавел очень порадовал. До этого писал на джаве, ничего подобного из коробки там нет. Тут все продумано и есть все что нужно для реальных проектов.
Не понимаю почему так мало лайков из 6 тыс. просмотров. Материал Laravel курс с нуля и в частноти Laravel / Migration - подача материала на 5 из 5. Автору огромное спасибо! Видно - PRO, своего дела. Макаренко позавидовал бы умению все разжевать. 👍☝
Это реально очень хороший курс. Я уже смотрел курсов штук 7 и этот значительно лучше. Нигде так не разжевывают информацию подробно. Большущее спасибо автору! Чтоб у тебя все было хорошо всегда, мужик.
Курс изумительный. Сложные моменты можно смотреть дважды или трижды. Всё делать ручками, на практике. Чуть-чуть меняйте задачу чтобы мозг не привыкал к одному и тому же. Автору предлагаю показать как сделать прям пару боевых задач. Чтобы люди понимали что будет на самом деле.
спасибо за уроки, все шло хорошо до момента с изменением наименования колонки помимо того что нужно было установить doctrine/dbal, она была установлена но из за того что на текущий момент версия 4.0 выходила ошибка при миграции Declaration of Illuminate\Database\PDO\Concerns\ConnectsToDatabase::connect(array $params) must be compatible with Doctrine\DBAL\Driver::connect(array $params): Doctrine\DBAL\Driver\Connection получилось решить таким образом: нашел файл composer.json в нем поменял версию "doctrine/dbal": "^3.0.0". После этого сделал "composer update" после этих действий миграция прошла успешно
Здравствуйте, у меня получается так, что при роллбэке или просто при выполнении php artisan migrate - выполняютмя обе миграции и по итогу колонка создаётся и тут же удаляется или наоборот, но колонка всё равно не появляется . Как можно это пофиксить кроме как закомментированием предыдущей миграции?
Разобрались? Такая же беда, пришлось использовать костыль, запуская конкретную миграцию: php artisan migrate --path=/database/migrations/2023_11_07_164728_edit_column_content_to_posts_table.php
Ничего не делать. Они должны быть там всегда. С помощью них в последствии можно накатить или откатить полностью все изменения, которые когда-либо были сделаны. Ну, и для истории.
после выполнения миграции delete вы выполнили её откат (rollback). Как laravel понял, что нужно откатить миграцию delete, а не add_column с удалением колонки? Ну или почему не выполнился rollback для add_column?
Разобрался, корректно работает если сначала указывать после какой колонки идет вставляемый столбец и потом заполнение ничем. Откатывать нужно по шагам (--step=1 или 2 и тд), хотя не обязательно.
Хэй!! ЕСЛИ У ВАС ПРОБЛЕМА ПРИ УСТАНОВКЕ DBAL : Installation failed, reverting ./composer.json and ./composer.lock to their original content. пробуйте следующую команду: composer require doctrine/dbal:2.* Если ошибка не уходит: перейдите в директорию с установленным php (примерный адрес C:\php-8.1.18-nts-Win32-vs16-x64) в файл php.ini и расскомментируйте extension=fileinfo и extension=pdo_mysql. После чего запустите команду composer require doctrine/dbal:2.*
один только вопрос. вот мы удаляем атрибут через миграцию удаления. атрибут удаляется. Но в этом атрибуте у некоторых объектов могли быть данные. Вопрос - откат этой миграции не вернёт удалённые данные. так ведь?
Illuminate\Database\QueryException SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'column `content` to `post_content`' at line 1 (Connection: mysql, SQL: alter table `posts` rena me column `content` to `post_content`)
Блин, а какая логика в этом со стороны ларавел? не проще ли делать все изменения в mysql редакторе и работать с моделью для вытаскивания .. обновления записей и все го остального - без миграции. Не понимаю.... еще вопрос такой, если я создал миграцию на смену названия - неапрмер tile на title2, но позже я хочу создать еще одну миграцию на смену другого столба, например desc на desc2 - нужно создавать отдельную миграцию и отдельный файл или уже в существующем просто заменить значения? Логика использования этого не понятно, так как ладно если у тебя 3 таблицы, а если 50 таблиц и больше, и ты работаешь с ними более активно - можно все сделать в редкаторе быстро, или можно потратить тонну времени на 100500 миграций ? на каждый 20 изменений в базы данных - будет создано 1000 файлов, мало того что бы они работали - например откат миграции на первоначальном create нужно еще и вручную названию колонок менять, если в будущем ты их сменил в новой миграции.
Миграции нужны для того, чтобы при выливке на прод они автоматически запустились и все изменения применились сразу на проде. Потому что пока ты будешь вручную что-то там менять в базе, у тебя сайт может лежать в это время, потому что модели изменились, а база - ещё нет. Плюс бывает, что у разработчика нет доступа на прод вообще по соображениям безопасности заказчика, тогда в ручную на проде поменять ничего не получится, только миграциями.
@@Игривчик наконец-то стало понятнее нахрена они нужны. Типа, если доступ в базу закрыт, а поменять что-то нужно, то ты как рэмбо, в обход запретов, поменяешь что хотел. А тому, кто запрет выдал, потом "сюрпрайз мазафака" )))))
то есть если я делаю роллбак на удалённую таблицу то я не откатываю а просто создаю таблицу заново, но это же нельзя назвать роллбеком, потому что данные удаляются, неужели нет механизма, чтобы запоминать данные которые были в таблице до удаления. P.S Спасибо за ваш труд)
Увы нет) Если только поверх создать еще одну миграцию на изменение, в которой будет внесено изменение в эту существующую таблицу, тогда данные останутся:)
А что делать в случае, если запустил migrate и поменял название колонки в content->content_posts, а потом rollback в content_posts->contentS и только потом заметил, что 'S' была лишней. Как правильно исправлять данную ситуацию? Создавать новую миграцию с переименованием contentS в content и к нему rollback соответственно?
Просто прописываешь в мигации на up еще раз корректировку. Накатываешь. Потом в down прописываешь еще раз какую надо корректировку, делаешь down. И затем снова можешь прописать на up то что надо и всё. Просто помни, что up и down это просто методы, которые реализуют всё то, что ты там написал. Ты можешь просто создание таблицы даже в down прописать, и на роллбеке, он тебе её создаст.. То есть это не принципально
А где можно более подробно посмотреть-почитать про artisan и как правильно именовать миграции? И еще такой вопрос... Миграции нужны только как инструмент для разработки, или они принимают участие на протяжении всей жизни сайта?
Они инициируют создание таблиц, если таковых нет. И по сути всегда должны присутствовать в папке миграций. Все детали можно почитать в официальной документации, рекомендую английскую)
Пару вопросов: 1) Как то можно обратиться к уже созданной ранее миграции, например я удалил таблицу, rollback ее сделал, но не вписал в него колонку description. Могу ли я как то запустить уже созданную ранее миграцию где уже было создание description чтобы она накатила ее по новой? 2) Или например сделал я миграцию и потом еще парочку, но вдруг я захотел получить rollback по первой созданной миграции, я могу это сделать или писать новую миграцию?
12 уроков залпом проглотил, но тут сделал передышку, просто чтобы сказать: "Господи, какое счастье, что есть такой курс!!" Огромное спасибо автору за труд!! Если напишешь номер карты, скину на пиво!
Ахаха, спасибо за такой отзыв)! Благодарю!)
@@laravelcreative , посмотрел полностью первый курс. Предложение с пивом все ещё в силе.
Ахаха, спасибо!)
@@НиколайГолодов-э1и присоединяюсь к этому предложению
"Обновляем страницу, её нет. О боже мой, её нет"
посмеялся, спасибо)
очень доступно объясняешь, огромное спасибо за труды и твоё время)
Благодарю)!
Отличный курс, спасибо. Ларавел очень порадовал. До этого писал на джаве, ничего подобного из коробки там нет. Тут все продумано и есть все что нужно для реальных проектов.
Спасибо! Очень подробный урок. Про миграции, не видел более развернутого урока.
Спасибо автору, ты красавчик! Все понятно даже тем кто новичок
Не понимаю почему так мало лайков из 6 тыс. просмотров.
Материал Laravel курс с нуля и в частноти Laravel / Migration - подача материала на 5 из 5.
Автору огромное спасибо! Видно - PRO, своего дела.
Макаренко позавидовал бы умению все разжевать. 👍☝
не все авторизируются, многие смотрят без аккаунта)
Это реально очень хороший курс. Я уже смотрел курсов штук 7 и этот значительно лучше. Нигде так не разжевывают информацию подробно. Большущее спасибо автору! Чтоб у тебя все было хорошо всегда, мужик.
Курс изумительный. Сложные моменты можно смотреть дважды или трижды. Всё делать ручками, на практике. Чуть-чуть меняйте задачу чтобы мозг не привыкал к одному и тому же. Автору предлагаю показать как сделать прям пару боевых задач. Чтобы люди понимали что будет на самом деле.
Прикольная подача информации, мне понравилось. Спс за твой труд.
Потрясающе! Спасибо за курс, учим дальше
спасибо за уроки, все шло хорошо до момента с изменением наименования колонки помимо того что нужно было установить doctrine/dbal, она была установлена но из за того что на текущий момент версия 4.0 выходила ошибка при миграции
Declaration of Illuminate\Database\PDO\Concerns\ConnectsToDatabase::connect(array $params) must be compatible with Doctrine\DBAL\Driver::connect(array $params): Doctrine\DBAL\Driver\Connection
получилось решить таким образом: нашел файл composer.json в нем поменял версию "doctrine/dbal": "^3.0.0". После этого сделал "composer update"
после этих действий миграция прошла успешно
Спасибо. Работает
Огонь, что тут еще скажешь)
Отлично всё работает^3 ))))
посмотрел пхп для ларавел очень понравилось, вот продолжаю смотреть другие плейлисты, спасибо!
Благодарю!)
Огромное спасибо!
Пожалуйста!)
Спасибо, за урок!
Благодарю)!
Отличный курс! Спасибо вам большое!)
хороший урок!!
Спасибо большое!
Здравствуйте, у меня получается так, что при роллбэке или просто при выполнении php artisan migrate - выполняютмя обе миграции и по итогу колонка создаётся и тут же удаляется или наоборот, но колонка всё равно не появляется . Как можно это пофиксить кроме как закомментированием предыдущей миграции?
Разобрались? Такая же беда, пришлось использовать костыль, запуская конкретную миграцию:
php artisan migrate --path=/database/migrations/2023_11_07_164728_edit_column_content_to_posts_table.php
@@Razrabotchik. Да, но не помню как)
тайминг 9:50 - накатили, а потом еще раз накатили...так и спиться можно... :)
18:20 Аха)) "нормально всё теперь" - ни одного поста в таблице не осталось)
Почему исполняет последнюю созданную миграцию? как мне выполнить какую-то другую?
у меня после миграции с методом after новый столбец все равно в конец таблицы добавляется 🤔
работаю с postgreSQL в pgAdmin
Да в постгресе есть такая фишка) И это еще зависит от приложения для просмотра бд)
Спасибо все получилось
Благодарю!)
куда потом девать огромное количество файлов миграции ? что с ними делать?
Ничего не делать. Они должны быть там всегда. С помощью них в последствии можно накатить или откатить полностью все изменения, которые когда-либо были сделаны. Ну, и для истории.
@@Игривчик Так их может скопится сотни или тысячи , если это большой проект ..
@@ВиталийДавыдов-э4г Так это текстовые файлы, они занимают места мало. Даже если там будет 1000 файлов по 10 КБ - это всего около 10 МБ
а почему не сделать проще - рефреш или фрешь ? в чём причина?
после выполнения миграции delete вы выполнили её откат (rollback). Как laravel понял, что нужно откатить миграцию delete, а не add_column с удалением колонки? Ну или почему не выполнился rollback для add_column?
День добрый. У меня migrate:rollback удаляет все подчистую, включая таблицу posts, что не так?
Разобрался, корректно работает если сначала указывать после какой колонки идет вставляемый столбец и потом заполнение ничем. Откатывать нужно по шагам (--step=1 или 2 и тд), хотя не обязательно.
конвенция? Есть же опция --table="тут указываем таблицу".
А to_posts_table - совсем не очевидно.
Если так напишешь то он не создаст в этой миграции:
Schema::table('posts', function (Blueprint $table) { // });
А сделает просто пустые up и down
Хэй!! ЕСЛИ У ВАС ПРОБЛЕМА ПРИ УСТАНОВКЕ DBAL : Installation failed, reverting ./composer.json and ./composer.lock to their original content.
пробуйте следующую команду: composer require doctrine/dbal:2.*
Если ошибка не уходит: перейдите в директорию с установленным php (примерный адрес C:\php-8.1.18-nts-Win32-vs16-x64) в файл php.ini и расскомментируйте extension=fileinfo и extension=pdo_mysql. После чего запустите команду composer require doctrine/dbal:2.*
Благодарю тебе добрый человек! раскомментила extension=fileinfo + composer require doctrine/dbal и всё заработало
Благодарю!)
Лойс!
У меня почему-то терминал php-шторма не видит composer, но dbal (composer require doctrine/dbal) установилось через терминал винды(cmd)
Как же функция change() описанная в документации?
Schema::table('users', function (Blueprint $table) {
$table->string('name', 50)->change();
});
один только вопрос. вот мы удаляем атрибут через миграцию удаления. атрибут удаляется. Но в этом атрибуте у некоторых объектов могли быть данные. Вопрос - откат этой миграции не вернёт удалённые данные. так ведь?
камент для продвижения канала, спасибо!
Благодарю!)
При создании миграции у меня почему-то пустые методы up и down.
Спасибо за урок
Но не поняла зачем делать миграцию delete_column....
в каких случаях такое нужно
Вы прекрасны
Благодарю!)
Не знаю в чем дело . Не работают команды firts и after , делаю всё как надо , не пойму в чем проблема ...
sqlite поддерживает вставку столбцов только в конец
Кааааайф!
Здравствуйте. Подскажите, как сделать, что бы ответы в командной строке такие как: Migrating: или Migrated: были цветные и выделялись зеленым цветом?
Расширения можно для ставить или для баш, если отдельно используешь:)
@@laravelcreative Понял. Спасибо большое.
dball уже можно не устанавливать, в новых версиях Laravel (у меня ^10.10), renameColumn будет работать без ошибки
Illuminate\Database\QueryException
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'column `content` to `post_content`' at line 1 (Connection: mysql, SQL: alter table `posts` rena
me column `content` to `post_content`)
В 10 версии Laravel уже не надо устанавливать Doctrine DBAL
Не проще ли вместо add_tablename... писать alter_table...?)))
Блин, а какая логика в этом со стороны ларавел? не проще ли делать все изменения в mysql редакторе и работать с моделью для вытаскивания .. обновления записей и все го остального - без миграции. Не понимаю....
еще вопрос такой, если я создал миграцию на смену названия - неапрмер tile на title2, но позже я хочу создать еще одну миграцию на смену другого столба, например desc на desc2 - нужно создавать отдельную миграцию и отдельный файл или уже в существующем просто заменить значения? Логика использования этого не понятно, так как ладно если у тебя 3 таблицы, а если 50 таблиц и больше, и ты работаешь с ними более активно - можно все сделать в редкаторе быстро, или можно потратить тонну времени на 100500 миграций ? на каждый 20 изменений в базы данных - будет создано 1000 файлов, мало того что бы они работали - например откат миграции на первоначальном create нужно еще и вручную названию колонок менять, если в будущем ты их сменил в новой миграции.
Миграции нужны для того, чтобы при выливке на прод они автоматически запустились и все изменения применились сразу на проде. Потому что пока ты будешь вручную что-то там менять в базе, у тебя сайт может лежать в это время, потому что модели изменились, а база - ещё нет. Плюс бывает, что у разработчика нет доступа на прод вообще по соображениям безопасности заказчика, тогда в ручную на проде поменять ничего не получится, только миграциями.
@@Игривчик наконец-то стало понятнее нахрена они нужны. Типа, если доступ в базу закрыт, а поменять что-то нужно, то ты как рэмбо, в обход запретов, поменяешь что хотел.
А тому, кто запрет выдал, потом "сюрпрайз мазафака" )))))
то есть если я делаю роллбак на удалённую таблицу то я не откатываю а просто создаю таблицу заново,
но это же нельзя назвать роллбеком, потому что данные удаляются, неужели нет механизма, чтобы запоминать данные которые были в таблице до удаления. P.S Спасибо за ваш труд)
Увы нет) Если только поверх создать еще одну миграцию на изменение, в которой будет внесено изменение в эту существующую таблицу, тогда данные останутся:)
Не понял главного. Для чего вся эта суета с миграциями?
Не проще ли в редакторе создавать/удалять таблицы и колонки?
Что это за фетиш такой?
👍👍👍
А что делать в случае, если запустил migrate и поменял название колонки в content->content_posts, а потом rollback в content_posts->contentS и только потом заметил, что 'S' была лишней. Как правильно исправлять данную ситуацию? Создавать новую миграцию с переименованием contentS в content и к нему rollback соответственно?
Просто прописываешь в мигации на up еще раз корректировку. Накатываешь. Потом в down прописываешь еще раз какую надо корректировку, делаешь down. И затем снова можешь прописать на up то что надо и всё. Просто помни, что up и down это просто методы, которые реализуют всё то, что ты там написал. Ты можешь просто создание таблицы даже в down прописать, и на роллбеке, он тебе её создаст.. То есть это не принципально
А где можно более подробно посмотреть-почитать про artisan и как правильно именовать миграции? И еще такой вопрос... Миграции нужны только как инструмент для разработки, или они принимают участие на протяжении всей жизни сайта?
Они инициируют создание таблиц, если таковых нет. И по сути всегда должны присутствовать в папке миграций. Все детали можно почитать в официальной документации, рекомендую английскую)
Автору большое спасибо! Вопрос: а как правильно удалить созданную миграцию? Сделать rollback и файл с миграцией ручками удалить?
Пиши в тг канал по вопросам, там чат-обсуждение)
@@laravelcreative а адрес ТГ-канала? Я так и не нашел нигде.
11:43 😂
Благодарю!)
Пару вопросов:
1) Как то можно обратиться к уже созданной ранее миграции, например я удалил таблицу, rollback ее сделал, но не вписал в него колонку description. Могу ли я как то запустить уже созданную ранее миграцию где уже было создание description чтобы она накатила ее по новой?
2) Или например сделал я миграцию и потом еще парочку, но вдруг я захотел получить rollback по первой созданной миграции, я могу это сделать или писать новую миграцию?
Пиши в тг канал по вопросам, там чат-обсуждение)
Шеф, а деплой будет? 👆 тут обещал 😂
Когда пройдем git и docker:)
@@laravelcreative ок, пойду за попкорном тогда. ☺️
1635
Спасибо дружище !
Спасибо друг!
Благодарю!)