Laravel миграции в laravel, исправление ошибки

Николка

Новичок
Всем здрасти, поможите пожалуйста, поправил миграцию, добавив столбик, запустил рефреш, по причине синтаксической ощибки моей вставки, слетела одна табличка, теперь migrate ни взад ни в перед, ни rollback ни reset ни refresh просит как раз ту табличку, как это исправить подскажите, ничего не понимаю, как восстановить былой лоск табличек???
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Темы нормально называем.

Найди у себя в БД таблицу с миграциями и почисти ее. Потом накати все снова.
 

Yuriy_S

-=PHP-Club=-
Найди у себя в БД таблицу с миграциями и почисти ее. Потом накати все снова.
угу, если это у него на продакшене, то ваще всё заглючит.. Нужно удалить из таблицы миграций только те миграции, которые у слетели.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Yuriy_S, правда думаешь, что его допустили бы до продакшна?
 
  • Like
Реакции: WMix

fixxxer

К.О.
Партнер клуба
С нормальной базой данных - оборачивать миграцию в DB::transaction.
С mysql - страдать, зачищать руками и ждать еще лет 20, пока в mysql системные словари таки не станут версионными.
 

Николка

Новичок
Спасибо за совет, пафос канешна у ребят нармальный, но я перво наперво хотел почистить миграции, но дело-то в том что тб мигратион нет инкримента, поэтому он не редактируется, поля не доступны для изменений, по поводу продакшна кодекс конечно прав, но еще не вечер, кстати на продакшне, как Вы говорите, мне проще делать обычный дамп как раз во избежание вот этой вот мега автоматизации которая призвана экономить мое время)))))) Убил 5 часов, уснул ... ща буду дальше исполнять. Подскажите пожалуйста, а где храниться информация (кроме БД) о миграциях, табличках???
 

Allality

Новичок
Спасибо за совет, пафос канешна у ребят нармальный, но я перво наперво хотел почистить миграции, но дело-то в том что тб мигратион нет инкримента, поэтому он не редактируется, поля не доступны для изменений, по поводу продакшна кодекс конечно прав, но еще не вечер, кстати на продакшне, как Вы говорите, мне проще делать обычный дамп как раз во избежание вот этой вот мега автоматизации которая призвана экономить мое время)))))) Убил 5 часов, уснул ... ща буду дальше исполнять. Подскажите пожалуйста, а где храниться информация (кроме БД) о миграциях, табличках???
Сохрани таблицы с данными (если где-то уже есть полезные данные), очисти таблицу с миграциями с помощью команды TRUNCATE table_name и сделай php artisan migrate.
 

Николка

Новичок
Не получается, в базе таблица одна, migration, она пустая, в папке с миграциями лежат файлы миграций, но при попытке php artisan migrate ВОТ ЭТО:
[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'DB.categories' doesn't exist,
таблички categories давно нет, мне не понятно, где храниться информация о таблицах давно минувших дней и на кой хрен так все завязано, снес если я по собственному желанию, что теперь приложение заново пересобирать, не понимаю, не понимаю, помогите а?? Хочу ведь понимать.
 

Николка

Новичок
Я уже тупо на новом пакете устанавливал эти миграции в другую базу, делал оттуда дамп, вонзал его в свою, чтоб таблички были слово в слово, но один фиг тоже самое подавай ему эти categories и все тут, пробовал composer dumpautoload -o, вылязят ошибки про то что в папке с миграциями нет файлов, а они там есть и имена одинаковые, подскажите, пожалуйста, что почитать, в мануалах laravel, только про то какая эта волшебная и необычайная штука миграции, а про то что это все не у самого продвинутого деятеля все слететь может на раз и как это залечить ни слова, и даже не понимаю как устроена работа с этими версиями, получается инфа не в бд, не по именам файлов миграций, а как?? ХДЕ?? Я подавлен...
 

fixxxer

К.О.
Партнер клуба
Либо ты плохо (или не туда) смотришь и таблица migrations не пустая, либо у тебя в первой же миграции делается alter table categories. Одно из двух. Чудес не бывает.

(Еще маловероятный сценарий, что какой-нибудь идиот переименовал файлы миграций).
 
Последнее редактирование:

Николка

Новичок
Этим идиотом мог быть только я)))))), но я перепроверил, все гуд, вставил дамп из другой базы, где миграции выполнились через консоль, вставил, заработало, только вот теперь такая вот штука

[Symfony\Component\Debug\Exception\FatalErrorException]
Cannot redeclare class CreateUsersTable

А так вроде заработало, спасибо огромное за помощь
 

Николка

Новичок
А все таки, если все делать не через черный ход, как очистить табличку migrations??? Она в phpMyAdmin не редактируемая

Данная таблица не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление не доступно.
 

fixxxer

К.О.
Партнер клуба
Есть такой язык, SQL называется.

Впрочем, даже в phpmyadmin-е этом вашем наверняка есть truncate table
 
Сверху