Как сгенерировать миграции (таблицы?) Из клонированного проекта laravel на локальную базу данных?

Надеюсь, мой вопрос имеет смысл, поскольку я немного не понимаю, что мне делать.

Я клонировал проект laravel, и в папке уже есть около 20 миграций. Насколько я понимаю, миграции - это таблицы?

Я создал пустую базу данных mysql, которая связана с этим проектом laravel, в котором в настоящее время есть таблица migrations и таблица users.

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

До сих пор я использовал команду php artisan migrate, который генерирует таблицы migrations и users и выдает эти ошибки.

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long; max key length is 1000 bytes (SQL: alter table users add unique
users_email_unique(email))


[Doctrine\DBAL\Driver\PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long; max key length is 1000 bytes


[PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long; max key length is 1000 bytes

какую версию laravel вы используете?

Adnan Mumtaz 10.03.2018 20:28
stackoverflow.com/questions/42244541/…
Akshay Khale 10.03.2018 20:49

«максимальная длина ключа составляет 1000 байт» - Вы используете MyISAM?

Paul Spiegel 10.03.2018 21:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Laravel 5.4 made a change to the default database character set, and it’s now utf8mb4 which includes support for storing emojis. This only affects new applications and as long as you are running MySQL v5.7.7 and higher you do not need to do anything.

Для тех, кто использует MariaDB или более старые версии MySQL, вы можете столкнуться с этой ошибкой при попытке выполнить миграцию:

[Освещение \ База данных \ QueryException] SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1071 Указанный ключ слишком длинный; максимальная длина ключа составляет 767 байт (SQL: alter table users добавляет уникальный users_email_unique (email))

[PDOException] SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1071 Указанный ключ слишком длинный; максимальная длина ключа 767 байт

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

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

Другие вопросы по теме