【问题标题】:How to Fix Unknown Database Error When Migrate Database Using Doctrine/DBAL?使用 Doctrine/DBAL 迁移数据库时如何修复未知数据库错误?
【发布时间】:2020-01-15 20:25:59
【问题描述】:

我试图在迁移关系中创建一个POS 系统。我在运行 migrate 之前使用了Doctrine/DBAL 来建立关系。安装Doctrine/DBAL 后,当我运行迁移时,出现未知的database 错误。如何解决此错误?

这是Laravel 5,我运行迁移时出错:

Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that  Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corre
sponds to your MariaDB server version for the right syntax to use near ') on delete cascade on update cascade' at line 1 (SQL: alter table `products` add constrai
nt `products_category_id_foreign` foreign key (`category_id`) references `categories` () on delete cascade on update cascade)

  at D:\laravel\POS_latihan\vendor\laravel\framework\src\Illuminate\Database\Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) {
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         }
    669| 

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that cor
responds to your MariaDB server version for the right syntax to use near ') on delete cascade on update cascade' at line 1")
      D:\laravel\POS_latihan\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:63

  2   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your Mari
aDB server version for the right syntax to use near ') on delete cascade on update cascade' at line 1")
      D:\laravel\POS_latihan\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:61

  Please use the argument -v to see more details.

【问题讨论】:

    标签: php laravel-5 dbal doctrine-dbal


    【解决方案1】:

    在Laravel路径下,进入config/database.php,找到:

    'engine' => null',
    

    并将其更改为:

    'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
    

    如果这不能解决您的问题,请删除您的数据库并创建一个新数据库。

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 2015-06-08
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多