我们的代码库目前位于mariadb集群后端(10.4),我们需要允许它也能够利用DigitalOcean的托管数据库(mySQL 8)。
Laravel的password_resets迁移不包含PK,这只是DO托管数据库的问题,可以通过在有问题的迁移中添加以下内容来暂时设置为忽略它:
DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");不幸的是,由于mariaDB无法理解此语句,它会抛出一个错误,即“未知系统变量”。
如何将语句定位于特定的数据库引擎版本,或者在语句出错时允许忽略该语句?
发布于 2021-04-07 23:20:30
我通过将以下行添加到config/database.php中的mysql连接修复了这个问题。
'mysql8' => env('DB_MYSQL8', false),然后将检查添加到create_password_resets_table中,作为
if(config('database.connections.mysql.mysql8')) {
DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");
}最后,如果数据库在DO托管数据库上运行,请将以下内容添加到.env
DB_MYSQL8=truehttps://stackoverflow.com/questions/66987914
复制相似问题