Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Не могу понять почему есть ошибка при создание миграции
GaneMax@GANEMAX D:\OSPanel\domains\catalog.loc
$ php artisan migrateIlluminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(255) not null, `email` varchar(255) not null, `password` varchar(255) not null, `remember_token` varchar(100) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)
at D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|Exception trace:
1 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists")
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:4582 PDOStatement::execute()
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458Please use the argument -v to see more details.
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCategoriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('name', 250);
$table->string('alias',250)->unique();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('categories');
}
}
Не в сети
Подскажите как устранить ?
Не в сети
Он Вам пишет, что таблица users уже существует.
Т.е. при запуске artisan migration, скрипт выполняет все миграции, которые ранее не были выполнены.
Возможно, таблицу users Вы создавали вручную, а потом создали миграцию.
Если Вам эту таблицу users не жалко, удалите ее. Или переименуйте, выполните миграцию, а потом переименуйте обратно ))
Не в сети
Я все таблице с БД удалил, так там может быть users таблица
Не в сети
значит не в той базе удалили. или не в ту базу пишет миграция.
Проверьте в файле .env
DB_DATABASE="Та база"?
Не в сети
значит не в той базе удалили. или не в ту базу пишет миграция. Проверьте в файле .envDB_DATABASE="Та база"?
да DB_DATABASE=catalog
я все с БД удалил, выполняю миграцию создаеться таблица users migrtion и все
Не в сети
Может кодировка не та
Не в сети
Создалось 2 таблицы: users и migration, да? Хорошо.
Файл миграции для таблицы categories в папке database/migrations ?
Не в сети
да
Не в сети
1. Сейчас команда artisan migrate ошибок не выдает?
2. Что выводит команда artisan migrate:status ?
3. Имя файла миграции для категорий?
() Вы запускаете artisan в папке того проекта? )) На всякий случай
Не в сети
$ php artisan migrate:status
+------+------------------------------------------------+-------+
| Ran? | Migration | Batch |
+------+------------------------------------------------+-------+
| N | 2014_10_12_000000_create_users_table | |
| N | 2014_10_12_100000_create_password_resets_table | |
| N | 2018_04_23_062130_create_categories_table | |
+------+------------------------------------------------+-------+
======================================
$ php artisan migrate
Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(255) not null, `email` varchar(255) not null, `password` varchar(255) not null, `remember_token` varchar(100) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)
at D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists")
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
2 PDOStatement::execute()
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
Please use the argument -v to see more details.
GaneMax@GANEMAX D:\OSPanel\domains\catalog.loc
Имя файла миграции для категорий?
2018_04_23_062130_create_categories_table
Создавал файл миграции так
$ php artisan make:migration create_categories_table --create=categories
Не в сети
Что-то не сходится. В artisan migrate:status в колонке Run стоит N для всех миграций.
Т.е. миграции не выполнились, а в сообщении говорится, что таблица есть.
1. Попробуйте переместить куда-то на время файл миграции категории. и еще раз запустите artisan migrate.
Он должен вывести "Nothing to migrate."
2. Перенесите миграцию user, если она ему не нравится. Но это непонятный путь.
Не в сети
как исправить проблему ?
Не в сети
Удалил я категорий миграцию и все таблице
$ php artisan migrate
Migration table created successfully.
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
at D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes")
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
2 PDOStatement::execute()
D:\OSPanel\domains\catalog.loc\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458
Please use the argument -v to see more details.
GaneMax@GANEMAX D:\OSPanel\domains\catalog.loc
Не в сети
Скорей всего проблема с таблицей или миграцией users
Не в сети
Может заново проект загрузить
Не в сети
Замените в файле миграции users вот эту часть. Это из "чистой" установки
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique()->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Изменено Ramir (23.04.2018 12:03:18)
Не в сети
По этой ошибке тут пишут https://laravel-news.com/laravel-5-4-key-too-long-error
Не в сети
Замените в файле миграции users вот эту часть. Это из "чистой" установки
не работает
Не в сети
проблема решилась смены MySQL 5.7 и все заработало
Не в сети
Страницы 1