2016-11-30 3 views
1

Da ich ein spanischer Sprecher bin, schrieb ich die Controller und Modelle der Einnahmen und Ausgaben in Spanisch; während alle anderen waren auf Englisch. Ich habe manuell umbenannt und geändert, Routen, Controller, Migrationen und sogar Modelle. Und wenn ich php artisan migrate ausführen: zurücksetzen das ist mein Fehler.Undefinierte Tabelle: 7 FEHLER: Relation "Ausgaben" existiert nicht

Undefined table: 7 ERROR: relation "expenses" does not exist (SQL: alter table "expenses" drop column "location_id")**

Ich benutze psgql und Laravel 5,3

Das ist mein Code:

<?php 

    namespace App; 

    use Illuminate\Database\Eloquent\Model; 

    class Expense extends Model 
    { 

     protected $fillable = ['id', 'description', 'quantity']; 


     public function locations() 
     { 

      return $this->hasMany('App\Location'); 

     } 
     public function icons() 
     { 

      return $this->hasMany('App\Icon'); 
     } 
     public function types() 
     { 

      return $this->hasMany('App\Type'); 
     } 
     public function stores() 
     { 

      return $this->hasMany('App\Store'); 
     } 

    } 

Migration:

<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateExpensesTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('expenses', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->float('quantity'); 
      $table->string('description'); 
      $table->integer('location_id')->unsigned(); 
      $table->integer('icon_id')->unsigned(); 
      $table->integer('type_id')->unsigned(); 
      $table->integer('store_id')->unsigned(); 
      $table->timestamps(); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropIfExists('expenses'); 
    } 
} 

Ort Migrat Ion:

<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateLocationsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('locations', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->string('address'); 
      $table->float('lat'); 
      $table->float('long'); 
      $table->integer('store_id')->unsigned(); 
      $table->timestamps(); 

      $table->foreign('store_id')->references('id')->on('stores')->onDelete('cascade'); 
     }); 

     Schema::table('expenses', function (Blueprint $table) { 
      $table->foreign('location_id')->references('id')->on('locations')->onDelete('cascade'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::table('expenses', function (Blueprint $table) { 
      $table->dropColumn('location_id'); 
     }); 

     Schema::dropIfExists('locations'); 
    } 
} 

Modell:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Location extends Model 
{ 

    protected $fillable = ['id', 'address', 'lat', 'long']; 


    public function expenses() 
    { 

     return $this->belongsTo('App\Expense'); 
    } 

    public function stores() 
    { 

     return $this->hasOne('App\Store'); 
    } 
} 

Hoffe ihr könnt mir helfen.

+0

Was verstehst du nicht? –

+0

Ich bekomme diese Fehler, wenn ich versuche, zu psgql zu migrieren. –

+0

Die Fehlermeldung ist sehr klar - Sie haben keine Tabelle namens Ausgaben. –

Antwort

0

Wenn es sagt

relation "expenses" does not exist 

Es geschieht in der Regel, wenn Ihre Ausgaben Tabelle gelöscht wurden, müssen vor migration:reset zurück CreateLocationsTable gerollt.

Überprüfen Sie die Reihenfolge der Ausführung Ihrer Migrationen.

Während Sie versuchten, einen Reset durchzuführen, öffnen Sie jetzt Ihre Datenbank, löschen Sie alle Tabellen manuell und führen Sie erneut migrate aus.

+0

Danke, das hat mir wirklich geholfen! –

Verwandte Themen