首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel:只运行针对特定数据库引擎的迁移

Laravel:只运行针对特定数据库引擎的迁移
EN

Stack Overflow用户
提问于 2021-04-07 22:12:12
回答 1查看 96关注 0票数 1

我们的代码库目前位于mariadb集群后端(10.4),我们需要允许它也能够利用DigitalOcean的托管数据库(mySQL 8)。

Laravel的password_resets迁移不包含PK,这只是DO托管数据库的问题,可以通过在有问题的迁移中添加以下内容来暂时设置为忽略它:

代码语言:javascript
复制
DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");

不幸的是,由于mariaDB无法理解此语句,它会抛出一个错误,即“未知系统变量”。

如何将语句定位于特定的数据库引擎版本,或者在语句出错时允许忽略该语句?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 23:20:30

我通过将以下行添加到config/database.php中的mysql连接修复了这个问题。

代码语言:javascript
复制
'mysql8' => env('DB_MYSQL8', false),

然后将检查添加到create_password_resets_table中,作为

代码语言:javascript
复制
if(config('database.connections.mysql.mysql8')) {
    DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");
}

最后,如果数据库在DO托管数据库上运行,请将以下内容添加到.env

代码语言:javascript
复制
DB_MYSQL8=true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66987914

复制
相关文章

相似问题

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