2017-02-01 17 views
0

Когда я дать команду «php artisan migrate» он дает мне ошибку:Laravel миграция не работает

base table or view already exists: 1050 table 'users' already exists. 

И не обновляет таблицу моих децибел. Я откинулся назад и перенастроил его снова, но не повлиял на БД, я создаю новый проект, но он также дает ошибку в этой команде.

+0

удалить таблицу и повторно запустить миграцию ... или лучше, если вы находитесь в разработчике, просто заново создать всю базу; –

+0

вам не нужно бросать всю базу данных. сделайте, как я описал ниже в своем ответе – Gayan

+0

при работе с миграцией, хорошо запустить эти 2 команды перед переносом 'compposator dump-autoload && php artisan cache: clear' – lewis4u

ответ

0

В своих миграциях делает эту проверку первого

Schema::hasTable('users'); 

, если у вас нет данных, вы можете упасть столбцы вручную первыми.

0

Я предполагаю, что ваша миграция создает таблицу users в БД. Эта ошибка просто означает, что таблица users already exits в такой БД, поэтому она не может быть создана.

Что вы можете на самом деле сделать, это создать новую пустую БД или повторно создать всю вашу БД, если вы можете позволить себе потерять свои данные, которые я предполагаю из вашего поста.

Откат отменяет только последний шаг перехода. Вы могли бы работать:

$ php artisan migrate:rollback --step=2 # rollback two last migrations 

или

$ php artisan migrate:reset # rollback all migrations 

Я предлагаю вам пройти через Database: Migrations, так что вы получите больше знаний о БД миграции.

0

Поскольку вы выполнили миграцию, в вашей базе данных есть ссылка на перемещенную миграцию в таблице migrations. Вам необходимо вручную удалить эту запись, чтобы повторить повторную миграцию.

migration Таблица отслеживает миграцию, с которой вы работаете. до того, как миграция действительно произойдет, Laravel пишет запись в таблицу migration.

Если произошла ошибка, миграция завершилась неудачей, но существует контрольная запись. следовательно, ошибка

базовый стол или представление уже существует: 1050 таблиц «пользователи» уже существуют.

Самый простой способ справиться с этим - устранить проблему с помощью файла миграции, удалить контрольную запись из таблицы миграции и снова выполнить миграцию.

0

Пожалуйста, выполните следующие действия:

первую очередь проверить текущее состояние миграции php artisan migrate:status

пропустить уже импортированные таблицы и искать новые миграции файлов и удалить создать выписку из ваших новых файлов миграции.

Проблема в том, что ваши новые файлы миграции могут содержать инструкцию create, а не изменять/отменять и т. Д.

как только вы исправить это заявление попробуйте запустить

php artisan migrate