私はLaravel 5.2の上に構築された自己学習型のプロジェクトから始めています。私は最初の問題を発見しました。移行での自己参照です。Laravelの移行で自己参照関係(外部キー)を作成する方法は?
これは、(私がいないため、コメントを削除する必要があり、ポストが長く作る)のようなファイル2016_08_02_024942_create_navigation_table.php
がどのように見えるかです:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateNavigationTable extends Migration
{
public function up()
{
Schema::create('navigation', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->integer('position')->unsigned();
$table->string('title');
$table->string('slug');
$table->string('permissions')->nullable();
$table->timestamps();
$table->softDeletes();
});
}
public function down()
{
Schema::drop('articles');
}
}
そして私はthis、thisのような、ここでいくつかの記事を読んでいるので、thisと多くは、私は次のコードで2016_08_02_030158_add_parent_to_navigation_table.php
として名前だけ関係して別のファイルを作るより:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddParentToNavigationTable extends Migration
{
public function up()
{
Schema::table('navigation', function (Blueprint $table) {
$table->foreign('parent_id')->references('id')->on('navigation')->onUpdate('cascade')->onDelete('cascade');
});
}
public function down()
{
Schema::drop('articles');
}
}
しかし、私はトンを得たphp artisan migrate
コマンドを実行すると彼はエラーを以下、私は私が間違っているのかわからないです:
[照らしなさい\データベース\のQueryException] SQLSTATE [42S01]:ベーステーブルまたは ビューがすでに存在している:1050テーブル「ナビゲーション」は既に(SQLを存在します。 テーブル
navigation
(id
int型符号なしnullではないAUTO_INCREMENT 主キー、符号なしposition
int型ではないnullで、title
VARCのHAR(255) ないヌル、slug
VARCHAR(255)NOT NULL、permissions
VARCHAR(255) ヌル、created_at
タイムスタンプはnullを作成、updated_at
タイムスタンプヌル、deleted_at
タイムスタンプヌル)デフォルトの文字セットのutf8 COLLATE utf8_unicode_ci内のENGIN電子= InnoDBは)は[PDOException] SQLSTATE [42S01]:ベーステーブルまたはビューがすでに存在している: 1050テーブル 'ナビゲーション' は既に
缶が存在しますどんなアドバイスをいただけますか?私が間違っていることは何ですか? this packageが表示されていますが、問題が解決するかどうかはわかりません。
もう一度実行する前にデータベースをクリアしましたか? – xdevnull
また、増分() '' 'のために' '' unsigned() ''を追加する必要はありませんが、デフォルトでは符号なしです(ヒント) – xdevnull
@xdevnull 'php artisan migrate:rollback 'をクリックし、DBをクリアしてください – ReynierPM