gpt4 book ai didi

php - Laravel 迁移 - 列已存在

转载 作者:行者123 更新时间:2023-12-01 21:22:01 25 4
gpt4 key购买 nike

我正在运行 Laravel Framework 版本 5.2.45 并且想要迁移我的数据库迁移。

我有两次迁移。一个是开箱即用的标准 2014_10_12_100000_create_password_resets_table,另一个是我新创建的迁移 2017_02_19_172350_create_keywords_table:

<?php

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

class CreateKeywordsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('keywords', function (Blueprint $table) {
$table->increments('id');
$table->string('keyword');
$table->timestamps();
$table->timestamps('published_at');

});
}

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

执行典型的 php artisan migrate 我得到(在回滚之前):

root:~/workspace $ php artisan migrate:rollback
Rolled back: 2014_10_12_100000_create_password_resets_table
root:~/workspace $ php artisan migrate


[Illuminate\Database\QueryException]
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created_at' (SQL: create table `keywords` (`id` int unsigned not null auto_incr
ement primary key, `keyword` varchar(255) not null, `created_at` timestamp null, `updated_at` timestamp null, `created_at` timestamp null, `updated
_at` timestamp null) default character set utf8 collate utf8_unicode_ci)



[PDOException]
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'created_at'


root:~/workspace $

数据库内部未创建表keywords

enter image description here

有什么建议我做错了什么吗?

感谢您的回复!

最佳答案

$table->timestamps(); 是一个始终会添加 created_atupdated_at 字段的函数。在您的情况下,您将添加两次。
如果您想添加另一个时间戳字段,则必须使用 timestamp() 函数。

因此,您应该将 published_at 行替换为以下内容(删除 s):

$table->timestamp('published_at');

所有可能的列类型的列表可以在 the documentation 中找到。 .

关于php - Laravel 迁移 - 列已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com