Git Клонировано Laravel Проект не выполнен на php Ремесленник мигрирует и php Ремесленник db: семя - PullRequest
0 голосов
/ 24 апреля 2020

I git клонировал репозиторий для проекта, написанного на Laravel / PHP. Мне удалось запустить большинство вещей локально, и я смог создать папку начальной миграции, но я застрял в точке заполнения и создания таблицы (?). Я продолжаю получать следующие ошибки:

In Connection.php line 664:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist (SQL: alter table `users` add `avatar` varchar(255   
  ) null default 'users/default.png' after `email`, add `role_id` int null after `id`)


In PDOStatement.php line 144:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist  


In PDOStatement.php line 142:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist  

* lara_dev - имя локальной базы данных. Я создал его непосредственно в своем локальном клиентском терминале MySQL после git клонирования проекта, он НЕ был создан никакими командами, выполненными в терминале.

Также:

Папка базы данных имеет три папки внутри: фабрики, миграции и семена. Из того, что я вижу и понимаю, файлы внутри настроены правильно, и база данных должна быть создана без проблем и без необходимости редактировать эти файлы.

У меня нет сервера WAMP, я просто использую встроенный сервер php с помощью команды php artisan serve.

Решения, которые я пробовал, так далеко, что не сработало:

  1. php кеш ремесленника: очистить // Очистить кеш, но это все.

  2. php artisan migrate: fre sh --seed // Те же ошибки, но также удаляются все таблицы, которые были там ранее.

  3. php artisan migrate: refre sh --seed // выдает сообщение «ничего для отката».

  4. php artisan db: seed // Те же ошибки

Я не был Здесь можно найти любые решения на стеке, которые подходят для моей ситуации. Любая помощь будет принята с благодарностью.

Пожалуйста, примите во внимание, что я относительно новичок в PHP, но не в кодировании, и я был в состоянии запустить работу по большей части, я просто застрял здесь. Если я могу предоставить дополнительную информацию, пожалуйста, дайте мне знать. Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 24 апреля 2020

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

Убедитесь, что миграции выполнены в правильном порядке, так как они выполняются в в алфавитном порядке .

0 голосов
/ 24 апреля 2020

Мне кажется, я понимаю, где твоя проблема. В Laravel framework у нас есть миграции, которые определяются в папке Laravel/database/migrations. У них есть специальные имена c.

Их имена зависят от даты их создания и расположены одинаково и выполняются одинаково.

Например:

2014_10_12_000000_create_users_table. php

и

2014_10_12_000001_alter_users_table. php

create_users_table.php выполняется в первую очередь и после этого alter_users_table.php выполняется .

Ваша проблема:

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

1-изменить имя (date_timestamp)_create_users_table.php Таким образом, что дата создания до изменения даты миграции

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

В конце выполнения php artisan migrate:fresh

0 голосов
/ 24 апреля 2020

Даниял Джавани дал мне правильный ответ в комментариях выше. Я добавил этот точный файл https://github.com/laravel/laravel/blob/master/database/migrations/2014_10_12_000000_create_users_table.php в папку с миграциями. Он создал таблицу пользователей, которую я пропустил, а затем запустил «php artisan migrate».

0 голосов
/ 24 апреля 2020

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

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

Можете ли вы изменить имя файла миграции таблицы alter users на 2020_04_24_062125_alter_users_table.php и повторить попытку?

...