我创建了一个Laravel项目,我在Migrate中添加了几个表。 它工作正常。这些表已有数据。现在我需要另一个表,我尝试使用此命令添加它:
php artisan make:migration create_books_table
它正在工作并在\ database \ migrations中添加文件.... 然后我在up()函数中添加了schema。但是当我运行命令时,
php artisan migrate
它不起作用,给出错误基表或视图已经存在。
请帮忙。我对laravel很新。感谢
迁移代码..
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBooksTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('books', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->text('description');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('books');
}
}
答案 0 :(得分:3)
Laravel有一个名为migration的表。它用于保存有关何时创建表的信息,因此工匠可以回滚到另一个点。如果手动删除表,则迁移表中的条目仍然存在。如果删除数据库中的所有表并再次迁移,它应该可以正常工作。
答案 1 :(得分:3)
在“ database / migrations /”中创建新文件夹,并在migration上使用“ path”属性,在迁移表之后,您可以将迁移文件移回普通文件夹。
php artisan migrate --path=/database/migrations/new folder/
答案 2 :(得分:0)
您需要删除数据库中现有的“ books”表;
该表已存在,因此不会再次创建。
或者如果您在其他表中没有太多数据,请运行
php artisan migrate:fresh
这将回滚先前的表迁移并全部重新迁移