2017-02-23 114 views
3

我試圖在XAMP中創建json數據庫,同時使用phpmyAdmin它顯示我使用mariaDB,但在我的xamp-control panel v3.2.2它顯示正在運行mySQL on port 3306。我使用Laravel 5.4框架來創建數據庫,下面是我的移民,我正在努力執行:Laravel的mariaDB JSON支持

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(); 
}); 

現在在執行這個我收到以下錯誤:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json null, content json null, scripts json null, deleted_at timestamp null' at line 1 (SQL: create table pages (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 null, created_at timestamp null, updated_at timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci)

即使如果我保持不爲空它會拋出相同的錯誤。我想要json格式的數據,我檢查了支持的版本,並根據文檔json格式支持從版本MariaDB 10.0.16.開始,我正在使用10.1.21-MariaDB

幫我在這裏。

+0

您是否嘗試過運行在數據庫GUI或REPL該查詢,然後評論查詢的每一部分進行逐行?它可能會說明確切的問題是什麼 – Spholt

回答

3

請注意,1064抱怨數據類型爲「json」。這在MariaDB中尚未實現。

您可以使用Dynamic Columns來關閉它,它至少可以將它們提取到JSON語法中。

另一件事(可能是你指的是)CONNECT能夠有一個JSON 表類型。 (不是類型。)

MySQL 5.7有一個名爲JSON的數據類型,外加一堆函數來操縱這些類型。

1

MariaDB的有別名JSON數據類型,因爲版本10.2.7

添加MariaDB的JSON與Laravel this package