laravel — PHP ремесленник мигрирует, не создавая новую таблицу

Я новичок в Laravel и я следую Laravel Documentations а также несколько обучающих видео. Тем не менее, я бегу это php artisan migrate код в моем местном CMD prompt и это не создает Database Table в phpmyadmin, Есть несколько других похожих тем, связанных с этим в stackoverflow но никто не решил мою проблему. Пожалуйста, не отмечайте этот дубликат.

Хорошо, это так. Я запускаю этот код

php artisan make:migration create_student_table --create=student

и новый файл создается в папке миграции как 2016_04_08_061507_create_student_table.php

Затем в этом файле я запускаю этот code

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateStudentTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('student', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('name', 20);
$table->string('email', 255);
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('student');
}
}

Затем в cmd я бегу php artisan migrate но это не создало student Таблица. Вместо этого он показывает это сообщение

[PDOException] SQLSTATE [42S01]: Базовая таблица или представление уже существует:
1050 Таблица «пользователи» уже существует

я создал users Таблица несколько дней назад с использованием метода, аналогичного описанному выше. Но новый student таблица не создается. Я что-то здесь упускаю?
Заранее спасибо.

8

Решение

Это означает, что Laravel пытается запустить users миграция таблицы в первую очередь. Если вы находитесь в разработке и вам не нужно хранить ваши данные, вы можете просто удалить users стол, а затем запустить php artisan migrate

9

Другие решения

РЕДАКТИРОВАТЬ

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

Это означает, что вы уже бежали php artisan migrate один раз и таблица уже присутствует в базе данных. иногда вам нужно сделать composer dump-autoload если ремесленник лжет.

поэтому вам нужно либо откатить последнее изменение перед редактированием и запуском php artisan migrate , для отката вы можете использовать PHP artisan migrate:rollback

Также, если вы хотите удалить все изменения, которые вы можете запустить php artisan migrate:reset ,

Есть php artisan migrate --force заставить принудительно запустить миграцию.

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

4

У меня была похожая проблема с моей установкой Laravel (mac os Sierra 10.12.16) и использованием MAMP с атомом, и я не нашел окончательного решения, пока не выполнил следующие шаги.

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

IN AppServiceProvider.php  add the following code:

use Illuminate\Support\Facades\Schema;

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

then in database.php:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

THEN FINALLY IN .env:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=
DB_DATABASE=hackable
DB_USERNAME=root
DB_PASSWORD=root

Надеюсь, это поможет кому-то, так как мне потребовались дни, чтобы, наконец, правильно настроить систему

2

В вашей базе данных уже есть эта таблица, просто отбросьте ее и позвольте мастеру создать laravel.

1

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

if(!Schema::hasTable('users')) ...
1

Иногда, если вы используете сервер MAMP, вы можете получить эту ошибку из-за подключения к базе данных. Это происходит из-за номера порта, обычно при использовании MAMP номер порта базы данных mysql равен 8889, который вы должны изменить в своей конфигурации и выполнить команду artisan, она будет работать наверняка.

0

Это сработало для меня: удалить все таблицы из базы данных и запустить

php artisan migrate.
-2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector