Xampp 不建立关系,Wamp 建立关系,使用迁移 Laravel
Xampp does not make relationship and Wamp does it ,using mirgrations Laravel
六个月前,我使用了 Laravel 和 Xampp,我使用了迁移并且一切正常。
现在在 Wamp 中,我遇到了一个错误。当我运行php artisan migrate
我可以看表有没有,但是关系没有。我在 phpmyadmin 的设计器模式下检查过。
我试过 Xampp,当我 运行 php artisan migrate
我可以看到那里的表格,以及关系。我在 phpmyadmin 的设计器模式下检查过。
我读到 Xampp 使用 MariaDB 和 Wamp Mysql ,但是当我六个月前使用 Xampp 时,我记得 Xampp 使用 Mysql也是。
我不明白为什么我没有更改数据库配置,但我可以连接两者。你能看出哪里出了问题吗? .我知道 MariaDB 与 Mysql 几乎相同,但是,我不明白为什么我不能在 Wamp 上创建与迁移的关系,我需要使用 Wamp
这是我的文件。
Database.php
'fetch' => PDO::FETCH_CLASS,
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
],
.env 文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:O+sV9+HC6/sg1PE4blPO4iJVlxmvJwVMJkO14O0HRL0=
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=expediente_orto
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
我找到了解决方案。 MariaDB默认使用InnoDB引擎,但是,Mysql默认使用MyISAM,最后一个不支持关系。
我将 Database.php 更改为默认使用 InnoDB。它成功了。
'engine' => 'InnoDB',
六个月前,我使用了 Laravel 和 Xampp,我使用了迁移并且一切正常。
现在在 Wamp 中,我遇到了一个错误。当我运行php artisan migrate
我可以看表有没有,但是关系没有。我在 phpmyadmin 的设计器模式下检查过。
我试过 Xampp,当我 运行 php artisan migrate
我可以看到那里的表格,以及关系。我在 phpmyadmin 的设计器模式下检查过。
我读到 Xampp 使用 MariaDB 和 Wamp Mysql ,但是当我六个月前使用 Xampp 时,我记得 Xampp 使用 Mysql也是。
我不明白为什么我没有更改数据库配置,但我可以连接两者。你能看出哪里出了问题吗? .我知道 MariaDB 与 Mysql 几乎相同,但是,我不明白为什么我不能在 Wamp 上创建与迁移的关系,我需要使用 Wamp
这是我的文件。
Database.php
'fetch' => PDO::FETCH_CLASS,
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
],
.env 文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:O+sV9+HC6/sg1PE4blPO4iJVlxmvJwVMJkO14O0HRL0=
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=expediente_orto
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
我找到了解决方案。 MariaDB默认使用InnoDB引擎,但是,Mysql默认使用MyISAM,最后一个不支持关系。
我将 Database.php 更改为默认使用 InnoDB。它成功了。
'engine' => 'InnoDB',