我已经执行了这个命令来创建一个'用户'表:
php artisan migrate
但之后我使用下面的命令创建了一个新的迁移文件,并希望创建一个'联系我们'表
php artisan make:migration contactus
在我执行以下命令后,在两个命令之后生成'联系我们'表我收到以下错误:表'用户'已存在
php artisan migrate
这是我的迁移文件代码Contactus:
public function up()
{
Schema::create('contactus',function(Blueprint $table){
$table->increments('id');
$table->string('email');
$table->string('message');
$table->timestamp('created_at')->nullable();
});
}
我有什么帮助,我很欣赏..
答案 0 :(得分:1)
听起来像用户迁移文件已被编辑,需要重新迁移。运行:php artisan migrate:refresh
警告这将删除数据库中存储的所有内容,因此请确保您有Seeder设置将任何相关内容放回数据库。
如果您在重新迁移时获得Laravel 5.4: Specified key was too long error
,请打开AppServiceProvider并添加:
Schema::defaultStringLength(191);
进入boot
函数
确保在AppServiceProvider文件的顶部添加use Illuminate\Support\Facades\Schema;
答案 1 :(得分:1)
对于此问题SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767字节(SQL:alter table users添加唯一users_email_unique(email))在App / Providers文件夹下打开AppServiceProvider并添加以下代码:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
答案 2 :(得分:0)
尝试运行以下命令再次删除并迁移所有表:
php artisan migrate:fresh
注意: 如果您的用户表已经迁移或存在,并且您希望在命令下面创建一个新表:
php artisan make:migration contactus
然后
php artisan migrate
答案 3 :(得分:-1)
使用CLI时,请确保不要盲目复制其他迁移文件。
首先运行php artisan make:migration create_contact_us_table
现在在/database/migrations/create_contact_us_table.php打开迁移文件位置
在此处编辑您的迁移,在UP功能中,您应该具有类似
的内容public function up()
{
Schema::create('contact_us', function(Blueprint $table){
$table->increments('id');
//Other table content
});
}
在此之后,您可以再次运行php artisan migrate
来运行迁移。
如果您不断收到此错误,请检查数据库和迁移表。
它可能没有保存它已经运行您以前的迁移。如果是这种情况,请从数据库中删除所有表并再次运行php artisan migrate
。应该工作。