【发布时间】:2018-07-09 17:13:12
【问题描述】:
考虑
laravel new bug
然后加入.env
DB_CONNECTION=sqlite
DB_DATABASE=/home/me/Code/bug/storage/database.sqlite
创建数据库
touch /home/me/Code/bug/storage/database.sqlite
迁移
php artisan migrate && php artisan migrate:fresh
现在尝试在 tinker 中以编程方式迁移
php artisan tinker
>> Artisan::call('migrate');
第一次导致 => 0(如预期的那样?)但第二次:
>>> Artisan::call('migrate:fresh')
Illuminate\Database\QueryException 带有消息“SQLSTATE[HY000]: 一般错误:17 数据库架构已更改(SQL:select * from sqlite_master where type = 'table' and name = migrations)'
Artisan::call('迁移') 第三次:
Symfony\Component\Console\Exception\CommandNotFoundException 与 message '“迁移”命名空间中没有定义命令。'
有什么想法吗?你能复制吗?
使用 postgres 更新。第二次运行 Artisan::call('migrate:fresh') 我得到:
Symfony\Component\Console\Exception\CommandNotFoundException 与 message '“迁移”命名空间中没有定义命令。'
更新 2:此处提交的问题:https://github.com/laravel/framework/issues/22997
https://github.com/laravel/tinker/issues/37
【问题讨论】:
-
确认我可以重现错误。仅供参考,您的数据库路径中似乎有错字。在
.env中,它指向database,但是当您创建文件时,它却指向database目录。假设这是一个错字,而不是您的实际步骤,因为我能够在引用正确路径时重现。 -
谢谢!是的,这是在起草帖子时打错了字。已在编辑中修复。
-
您是否尝试过使用 MySQL 让它工作?值得一试,看看我们是否可以将其缩小到 sqlite 驱动程序问题或更大的 Artisan 问题
-
您是否在连接配置中设置了 'ATTR_PERSISTENT' => TRUE ?和 APP_ENV=local ?
-
APP_ENV=local - 是,ATTR_PERSISTENT - 否
标签: laravel