【发布时间】:2017-06-28 08:48:04
【问题描述】:
我在 laravel 5.3 中工作,我想在现有表中添加列(即 course_chapters)。这样我就通过命令创建了迁移文件
php artisan make:migration add_description_to_course_chapters_table --table=course_chapters
迁移文件已创建,我添加了一些代码以在该表中添加列,如下所示
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddDescriptionToCourseChaptersTable extends Migration {
public function up() {
Schema::table('course_chapters', function (Blueprint $table) {
$table->text('description')->after('title');
});
}
public function down(){
Schema::table('course_chapters', function (Blueprint $table) {
$table->dropColumn('description');
});
}
}
运行命令后
php artisan migrate
表没有创建,而是我得到了错误
←[37;41m
←[39;49m
←[37;41m [Illuminate\Database\QueryException]
←[39;49m
←[37;41m SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i ←[39;49m
←[37;41m n your SQL syntax; check the manual that corresponds to your MariaDB server ←[39;49m
←[37;41m version for the right syntax to use near ') default character set utf 8 col ←[39;49m
←[37;41m late utf8_unicode_ci' at line 1 (SQL: create table `course_chapters` () def ←[39;49m
←[37;41m ault character set utf8 collate utf8_unicode_ci)
←[39;49m
←[37;41m
←[39;49m
←[37;41m
←[39;49m
←[37;41m [Doctrine\DBAL\Driver\PDOException]
←[39;49m
←[37;41m SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i ←[39;49m
←[37;41m n your SQL syntax; check the manual that corresponds to your MariaDB server ←[39;49m
←[37;41m version for the right syntax to use near ') default character set utf 8 col ←[39;49m
←[37;41m late utf8_unicode_ci' at line 1
←[37;41m
←[39;49m
←[37;41m [PDOException]
←[39;49m
←[37;41m SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error i ←[39;49m
←[37;41m n your SQL syntax; check the manual that corresponds to your MariaDB server ←[39;49m
←[37;41m version for the right syntax to use near ') default character set utf 8 col ←[39;49m
←[37;41m late utf8_unicode_ci' at line 1
←[39;49m
←[37;41m
←[39;49m
有答案吗?
我现有的表迁移文件是
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CourseChapters extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('course_chapters', function (Blueprint $table) {
$table->increments('id');
$table->integer('course_id');
$table->integer('chapter_id');
$table->string('title', 80);
$table->string('source');
$table->string('source_type');
$table->string('max_attempts');
$table->tinyInteger('status');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('course_chapters');
}
}
【问题讨论】:
-
请添加您在帖子中遇到的错误。以便我们能够更快地为您提供帮助。
-
我编辑了我的帖子@AbhilekhSingh
-
能否附上现有表的迁移文件或架构?
-
我在我的帖子@AdityaSingh 中附加了现有的迁移文件
-
the table was not created还说您的表已创建并且您要添加新列对吗?