mariaDB JSON-Unterstützung in Laravel
Ich versuche zum erstellen einer json-Datenbank in XAMP, während der Verwendung des phpmyAdmin zeigte mir, dass ich mit mariaDB aber in meinem xamp-control panel v3.2.2
es zeigt, läuft mySQL on port 3306
. Ich bin mit Laravel 5.4 framework, die Datenbank zu erstellen, ist nach meiner migration, die ich versuche umzusetzen:
Schema::connection('newPortal')->create('pages', function (Blueprint $table){
$table->increments('id');
$table->string('title');
$table->string('slug')->unique()->index();
$table->json('styles')->nullable();
$table->json('content')->nullable();
$table->json('scripts')->nullable();
$table->softDeletes();
$table->timestamps();
});
Nun während der Ausführung dieser ich bin immer folgende Fehlermeldung:
SQLSTATE[42000]: Syntax error oder access violation: 1064 Fehler in der SQL syntax; check the manual das entspricht der MariaDB-server-version für den richtigen syntax in der Nähe 'json null,
content
json null,scripts
json null,deleted_at
timestamp null,' at line 1 (SQL: create tablepages
(id
int unsigned not null auto_increment primary key,title
varchar(191) not null,slug
varchar(191) not null,styles
json null,content
json null,scripts
json null,deleted_at
timestamp nullcreated_at
timestamp nullupdated_at
timestamp null) default-Zeichensatz utf8mb4 collate utf8mb4_unicode_ci)
Selbst wenn ich halten nicht null, es wirft den gleichen Fehler. Ich möchte json-formatierte Daten, ich habe die unterstützte version und als pro die Dokumentation der json-format unterstützen, angefangen von der version MariaDB 10.0.16.
und ich bin mit 10.1.21-MariaDB
Mir helfen, in diesem.
- Haben Sie versucht, läuft die Abfrage in einer Datenbank, GUI oder REPL und dann kommentieren jeden Teil der Abfrage aus Zeile? Es kann etwas Licht auf, was das genaue problem ist
Du musst angemeldet sein, um einen Kommentar abzugeben.
MariaDB hat alias für JSON-Datentyp ab version 10.2.7
Hinzufügen MariaDB JSON zu Laravel mit dieses Paket
Beachten Sie, dass die 1064 beschwerte sich über den datatype "json". Solche (noch) nicht implementiert in MariaDB.
Können Sie in der Nähe mit Dynamische Spalten, das zumindest ein Weg, Holen Sie in JSON-syntax.
Andere Sache (wahrscheinlich das, was du meinst) ist
CONNECT
Lage, ein JSON - Tabelle Typ. (Nicht Spalte Typ.)MySQL 5.7 hat einen Datentyp namens
JSON
, plus eine Reihe von Funktionen zum Bearbeiten von solchen.Heraus, eine einfache Lösung (nicht empfohlen für die Produktion) -
Als pro mariadb-version 10.1.32 und senken wie es scheint mariadb nicht unterstützt json-Daten geben ich bin immer noch unsicher, wenn es verfügbar ist in version 10.2.7+.
aber hier ist eine einfache Lösung, um durch diese.
ändern json-Datentyp in text und führen Sie die migration erneut.
(https://user-images.githubusercontent.com/27993070/41234555-19c5d1d8-6dbf-11e8-9a4b-0644b03aecfc.png)
Quelle-
https://github.com/laravel/framework/issues/13622