Laravel 10 如何在迁移上定义 Microsoft SQL Server 模式?

问题描述 投票:0回答:0

我正在尝试使用 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 或其他东西来扩展功能或其他东西。

php sql-server laravel database-schema laravel-10
© www.soinside.com 2019 - 2024. All rights reserved.