我正在尝试使用 Laravel 10 并注意到,当尝试在我的迁移或数据库配置文件中定义 Microsoft SQL Server 模式时,artisan 命令要么出现分段错误,要么模式前缀被忽略并创建了我的表在 dbo 架构中。
我已经尝试像在 SQL Server 语句中那样定义我的表名
schema_name.table_name
尝试在所需的 schema_name
中创建我的表,就像这样
public function up(){
Schema::create('schema_name.table_name', function(Blueprint $table){
//...
});
}
我还尝试进入
database.php
配置文件到我的 sqlsrv 连接并设置前缀选项,如下所示:
'connection' => [
//...
'sqlsrv' => [
//...
'prefix' => 'schema_name.',
],
],
这两者都只会导致
php artisan migrate
命令出现段错误。如果我删除将 schema_name 与 table_name 分开的句点,该命令将运行,但会在 dbo
模式中创建表,并将两个字符串拼接在一起以创建一个 schema_nametable_name
表。
我还尝试在 database.php 配置文件中的 sqlsrv 连接上添加
prefix
选项,因为我注意到 Postgres SQL 连接可以像这样定义它:
'connection' => [
//...
'sqlsrv' => [
//...
'schema' => 'schema_name',
],
],
但它什么也没做。
我开始认为我必须深入研究框架的实际核心文件,以找到为这些迁移生成实际 SQL 语句的位置,然后直接修改它们或创建 Facade/ServiceContainer 或其他东西来扩展功能或其他东西。