Laravel добавить данные после миграции вызвать ошибку

Laravel добавить данные после миграции вызвать ошибку

12.01.2020 09:59:42 Просмотров 34 Источник

Я хочу добавить эти данные после refreshили database

migration

но это дает мне эту ошибку:

?[41;1m Illuminate\Database\QueryException ?[49;22М : ?[33mSQLSTATE[42S01]: BA se таблица или представление уже существует: таблица 1050 'locations' уже существует (SQL: cre) расположение таблиц public function up() { Schema::create('locations', function (Blueprint $table) { $table->bigIncrements('id'); $table->integer('type'); $table->integer('pid')->default(0); $table->integer('cid')->default(0); $table->string('name'); $table->timestamps(); }); DB::table('locations')->insert([ ['type' => 1, 'name' => 'Istanbul'], ['type' => 2, 'name' => 'Istanbul', 'pid' => 1], ['type' => 3, 'name' => 'Taksim', 'cid' => 2], ['type' => 3, 'name' => 'Beyoglu', 'cid' => 2], ]); } bigint unsigned not null auto_increment первичный ключ, locationsint not null, idint not null default '0', typeint not null default '0', pidvarchar (255) not null, cidtimestamp null, nameti mestamp null) набор символов по умолчанию utf8mb4 collate 'utf8mb4_unicode_ci')

Как я могу решить эту проблему?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59701662/laravel-add-data-after-migrate-cause-error#comment105556631_59701662
не ставьте db insert в миграцию используйте DB seed, чтобы добавить данные в свои таблицы.

Ответы - Laravel добавить данные после миграции вызвать ошибку / Laravel add data after migrate cause error

Является ответом!
Pedram

12.01.2020 10:10:10

Удалить DB:table с миграцией и запустить:

php artisan migrate:refresh

Затем

php artisan make:seed LocationTableSeeder

Затем добавьте это в run():

    DB::table('locations')->insert([
        ['type' => 1, 'name' => 'Istanbul', 'pid' => 0, 'cid' => 0, 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')],
        ['type' => 2, 'name' => 'Istanbul', 'pid' => 1, 'cid' => 0, 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')],
        ['type' => 3, 'name' => 'Taksim', 'cid' => 2, 'pid' => 0, 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')],
        ['type' => 3, 'name' => 'Beyoglu', 'cid' => 2, 'pid' => 0, 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')],
    ]);

Затем

php artisan db:seed --class=LocationTableSeeder
https://stackoverflow.com/questions/59701662/laravel-add-data-after-migrate-cause-error/59701713#comment105556801_59701713
Все еще есть ошибка Insert value list does not match column list:
https://stackoverflow.com/questions/59701662/laravel-add-data-after-migrate-cause-error/59701713#comment105556832_59701713
@tourtravel ошибка довольно ясна, то, что вы хотите вставить, не соответствует вашим столбцам. добавьте pidи cid, а также updated_atcreated_atпроверьте обновленный ответ
Закрыть X