将新的rails应用程序与现有的外部MS SQL Server数据库集成



我需要创建一个新的rails应用程序,该应用程序将使用现有的外部Microsoft SQL Server数据库作为其主数据库。此数据库在我需要连接的外部服务器上运行。在我工作的地方,有一个单独的数据库管理员部分,所以我不确定我需要执行什么步骤。我认为简单的部分是连接到服务器并将应用程序设置为使用该数据库。但在那之后我感到困惑。

我应该创建数据库转储和迁移吗?

我应该添加模型来表示现有的数据库结构吗?

如果我需要在数据库中创建新的模型和表...

我应该从 rails 生成器生成其模型并在数据库上运行迁移,还是联系数据库管理员创建表,然后在应用程序中手动指定模型?<-这真的让我感到困惑>

提前谢谢你,对不起我的英语! :)

编辑! ->铁路之路

我找到了另一种集成多个数据库数据的好方法......您可以定义一个模型并指定它位于哪个数据库中(因此数据库连接永远不会关闭)...这绝对是铁路之路,应该遵循...

这里有一个不错的嘟嘟声: Rails 中的多个数据库

TL;博士

  1. 在 database.yml 中定义您的secondary_db
  2. 定义模型并指定其数据库和表名称

    Class ExternalDatabaseModel < ActiveRecord::Base
    establish_connection(:secondary_db)
    self.table_name = "the_table"
    self.primary_key = 'someWeirdIDColumn'
    end
    

然后像任何其他轨道模型一样使用,指定关系和更多:)

希望对某人有帮助!

我建议你看看小tds gem:https://github.com/rails-sqlserver/tiny_tds。它真的可以用来配置和使用...可以使用它来连接外部 SQL Server 数据库并进行所需的查询。不知道您正在使用哪种类型的系统,但如果您不断检索数据,发出外部请求可能会使您的系统变慢。根据您的应用程序,您可以考虑同步数据,使本地数据库变得多余。希望对您有所帮助,祝您好运!

编辑:关于模型部分:如果您每次需要时都要从该SQL服务器检索数据,则无需将其存储在本地。但是,如果要执行该冗余,则应使用所需的属性创建模型,而不是从服务器检索时正常保存它,只需将值归因于模型并调用save!方法即可。

最新更新