gpt4 book ai didi

ruby-on-rails - 连接失败,数据库名称为 '.'

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:56 24 4
gpt4 key购买 nike

我一直在尝试在我们的一个 Rails 应用程序中调试 SQL Server 数据库错误。问题是数据库名称,如添加到 database.yaml 中,有一个 '.' ('testdb.v1')。它导致错误:

TinyTds::Error: Database 'testdb' does not exist. Make sure that the name is entered correctly.

认为这是一个 YAML 与 Rails 的问题,引用了 '.'字符,我在 Rails 控制台中打开应用程序并尝试了我能想到的每一种 Ruby 引用,但每次我都会遇到相同的错误。

在我的 model.connection_config 中数据库名称分配的某处,'.'被解释为格式说明符,后缀从名称中删除。 model.connection_config['database']'testdb.v1',但显然这不是交给 SQL Server 的。

我不确定这是 Rails 问题还是 SQL Server 问题,尽管我一起使用的 C# 应用程序设法打开数据库没有问题。因此,我认为这是一个 rails/ActiveRecord 问题。不幸的是,我没有更改数据库名称的选项。

有没有办法引用 '.'字符,以便它将保持“。”以及数据库名称中的后缀?

最佳答案

进一步调查将我带到了 activerecord-sqlserver-adapter 的 github 页面

在那里,我发现了问题 230226 ,和我有类似的问题。显然使用“。”在数据库中,表或列名会出现类似的问题。由于这些是在 2012 年创建的并且仍然开放,因此看起来不会很快出现修复。在评论中有一些想法可以通过猴子修补使其正常工作。猜猜这就是我必须采取的方法才能使它正常工作。

更新:对于遇到类似问题的任何人,数据库名称是唯一的问题(不是表或列),我们采用的解决方案是围绕 sqlserver-adapter 进行最终运行。我们为每个数据库创建了一个 SQL 用户,并为该用户分配了一个默认数据库。然后,我们连接到用户登录名,但将数据库名称保留为空。在这种情况下,SQL Server 将连接到默认数据库。

关于ruby-on-rails - 连接失败,数据库名称为 '.',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26889842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com