2016-04-20 6 views
0

Ich teste gerade Laravel 5.2 mit MariaDB 10.0, und liebe dieses Framework. Ich würde gerne einen Teil der bestehenden Web-App (Custom Accounting Web Application) nach Laravel 5.2 migrieren. Es gibt jedoch einige Probleme bei der Migration meiner aktuellen Webanwendung zu Laravel.Gibt es die beste Möglichkeit, vorhandene Tabellen ohne Fremdschlüssel zu Laravel 5 mit Eloquent zu migrieren?

(1) Aktuelle Datenbank verwendet keinen Fremdschlüssel Als ich das Laravel Handbuch zu lesen, die Eloquent ORM (nicht Query Builder) zu verwenden, Fremdschlüssel obligatorisch ist, soweit ich verstehe. Die vorhandene Datenbank verwendet jedoch keinen Fremdschlüssel.

(2) Aktuelle Datenbank-Struktur paßt nicht zu Laravel Wie ich verstehe Laravel ihre eigene Stil Tabellenstruktur requrired obwohl sie etwas überwiegendes erlauben, aber nicht alles. Aber wenn ich meine Datenbank überprüfe, braucht es eine Menge Modifikationen, um dem Laravel-Stil zu entsprechen.

Zusammengefasst, was ich tun möchte, migrieren einige der vorhandenen Tabellen und Laravel Web-Anwendung mit Eloquent, nicht Query Builder zu entwickeln.

Ich freue mich auf Ihre guten Meinungen und Ratschläge.

Antwort

1

(1) Das stimmt nicht. Die Verwendung von Fremdschlüsseln ist nicht obligatorisch. Beziehungen werden mit den Regeln der Konvention geladen, was mit Punkt 2 zu tun hat. Die Verwendung wird jedoch empfohlen. Ich habe einige Apps vermasselt, weil Fremdschlüssel in MySQL nicht erstellt wurden, weil die Standard-Engine sie nicht unterstützt hat. Ich habe es erst spät bemerkt.

(2) Laravel ist Konvention über Konfiguration, das heißt, es ist so viel besser funktioniert, wenn Ihre DB Laravel Konventionen entspricht. Allerdings verstehe ich nicht, warum nicht alle Migrationen laufen? Nicht verwendete Tabellen können weiterhin in der Datenbank enthalten sein. Benutze sie einfach nicht in Laravel.

0

Eloquent ziemlich flexibel ist. Ich habe Laravel 5.0 Eloquent auf einer bestehenden, alle benutzerdefinierten PHP-Anwendung verwendet, und es hat super funktioniert.

Die größte Herausforderung für mich bestand darin herauszufinden, wie Migrationen erstellt werden können. Am Ende habe ich phpmig verwendet, um die Migrationen zu erstellen und auszuführen. Und ich konnte Illuminate \ Database \ Capsule \ Manager in die Migrationen laden, sodass ich Laravels Schema Builder verwenden konnte.

Mithilfe von Migrationen können Sie den vorhandenen Spalten Fremdschlüsselindizes hinzufügen. Möglicherweise müssen Sie die Spaltendefinition ändern, damit sie mit der fremden Spalte übereinstimmt.