2017-02-10 6 views
1

Im Arbeiten in Laravel 5.3, ich möchte Spalte in vorhandenen Tabelle (d. H. Kurs_chapters) hinzufügen. so dass ich Migrationsdatei durch den BefehlFehler beim Hinzufügen Spalte in vorhandene Tabelle

php artisan make:migration add_description_to_course_chapters_table --table=course_chapters 

Migration Datei erstellt haben erstellt, und ich habe einige Code hinzuzufügen Spalte in der Tabelle, wie unten

<?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'); 
      }); 
     } 
    } 

Nachdem ich Befehl ausführen

hinzugefügt php artisan migrate

der Tisch war nicht statt, dass erstellt ich habe Fehler

←[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 

Jede Antwort?

Meine vorhandene Tabelle Migrationsdatei ist

<?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'); 
    } 
} 
+0

Bitte fügen Sie den Fehler, den Sie in der Post erhalten haben. Damit wir Ihnen schneller helfen können. –

+0

Ich habe meinen Beitrag bearbeitet @AbhilekhSingh – Vinothini

+0

können Sie die Migrationsdatei oder das Schema der vorhandenen Tabelle anhängen? –

Antwort

0

Du es gut.

Um die Spalte in der vorhandenen Datenbank zu ändern/hinzufügen, müssen Sie doctrine/dbal installieren, wie Sie bereits haben. Aber wenn Sie sich ->after() Methode ansehen, werden Sie sehen, dass es nur in MySQL Datenbank funktioniert. Bitte schauen Sie sich diesen Abschnitt in Laravel 5.3 Documentation

Ich denke, Ihr Problem ist, dass Sie MariaDB verwenden.

+0

also was soll ich für diese – Vinothini

+0

tun Verwenden Sie nicht '-> after()' Methode überhaupt. – zgabievi

+0

Anstelle von after() was kann verwendet werden – Vinothini

Verwandte Themen