首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8不能运行Artisan::call(‘迁移’,[‘’-强制‘=> true])

Laravel 8不能运行Artisan::call(‘迁移’,[‘’-强制‘=> true])
EN

Stack Overflow用户
提问于 2021-03-08 07:12:16
回答 1查看 712关注 0票数 0

我在Laravel 8中创建了Laravel安装向导,但是当我运行

代码语言:javascript
复制
Artisan::call('migrate', ['--force' => true])

当我执行代码时,我收到了以下消息

SQLSTATE42000:语法错误或访问冲突: 1103不正确的表名'‘(SQL:创建表 (id int无符号非空auto_increment主键,migration varchar(191) null,batch int null)默认字符集utf8mb4排序规则'utf8mb4_unicode_ci')

我尝试过使用php artisan migrate运行迁移,它运行得很好。我认为问题在于创建migrations表时,因为我没有任何带有migrationbatch字段的表

这是我的migrate()函数

代码语言:javascript
复制
public function migrate()
{
    try {
        Artisan::call('migrate', ['--force' => true]);
    } catch (\Throwable $th) {
        return $this->response(
            "Failed to migrate tables. ".$th->getMessage(),
            'error'
        );
    }

    return $this->seed();
}

这是我的seed()函数

代码语言:javascript
复制
public function seed()
{
    try {
        Artisan::call('db:seed', ['--force' => true]);
    } catch (\Throwable $th) {
        return $this->response(
            "Failed to seed tables. ".$th->getMessage(),
            'error'
        );
    }

    return $this->response(
        "Successfully migrated and seeded tables.", 
        'success'
    );
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-21 18:56:56

手工命令相对于您的代码所在的文件夹。因此,如果您不在应用程序的根文件夹中,则必须指定到迁移文件夹的路径。

代码语言:javascript
复制
Artisan::call('migrate', array('--path' => '../app/database/migrations'));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66525616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档