Sql server 如何使用database.yml文件将Ruby脚本连接到数据库?

Sql server 如何使用database.yml文件将Ruby脚本连接到数据库?,sql-server,ruby,database,tiny-tds,Sql Server,Ruby,Database,Tiny Tds,我想用我创建的ruby脚本来使用我的数据库。现在我正在将数据库连接器写入我创建的模型文件中,就像这样 class MyModel < ActiveRecord::Base self.abstract_class = true self.table_name_prefix = "MyDatabase." establish_connection( :adapter => "sqlserver", :host => "XXXX", :port

我想用我创建的ruby脚本来使用我的数据库。现在我正在将数据库连接器写入我创建的模型文件中,就像这样

class MyModel < ActiveRecord::Base
  self.abstract_class = true
  self.table_name_prefix = "MyDatabase."

  establish_connection(
    :adapter => "sqlserver",
    :host => "XXXX",
    :port => "14XX",
    :database => "XXXX",
    :username => "XXXX",
    :password => "XXXX"
  )

end
classmymodel“sqlserver”,
:host=>“XXXX”,
:port=>“14XX”,
:数据库=>“XXXX”,
:用户名=>“XXXX”,
:密码=>“XXXX”
)
结束

但是,由于我正试图将我的项目签入Github,我想将凭据和连接信息提取到一个
数据库.yml
文件中,我可以将该文件添加到我的
.gitignore
。我从来没有真正研究过Rails项目是如何工作的,但我想在这个Ruby脚本中模拟它。

所以这就是我拼凑起来工作的。。。不确定这是否是最好的方法,但它允许我忽略database.yml,并将重要的凭据保留在我的github项目之外

main.rb

require 'active_record'
require 'tiny_tds'
require './config/initializers/initializer.rb'
@dbconfig = YAML.load(File.read("./config/database.yml"))
ActiveRecord::Base.establish_connection(@dbconfig)

Dir["./models/*.rb"].each { |file| require file }
config/initializers/initializer.rb

require 'active_record'
require 'tiny_tds'
require './config/initializers/initializer.rb'
@dbconfig = YAML.load(File.read("./config/database.yml"))
ActiveRecord::Base.establish_connection(@dbconfig)

Dir["./models/*.rb"].each { |file| require file }
数据库.yml

adapter: sqlserver
username: XXXX
password: XXXX
host: "XXX.XXX.XXX.XXX"
port: 1433
database: "mydatabasename"
pool: 5
timeout: 15000

这就是我拼凑起来的工作。。。不确定这是否是最好的方法,但它允许我忽略database.yml,并将重要的凭据保留在我的github项目之外

main.rb

require 'active_record'
require 'tiny_tds'
require './config/initializers/initializer.rb'
@dbconfig = YAML.load(File.read("./config/database.yml"))
ActiveRecord::Base.establish_connection(@dbconfig)

Dir["./models/*.rb"].each { |file| require file }
config/initializers/initializer.rb

require 'active_record'
require 'tiny_tds'
require './config/initializers/initializer.rb'
@dbconfig = YAML.load(File.read("./config/database.yml"))
ActiveRecord::Base.establish_connection(@dbconfig)

Dir["./models/*.rb"].each { |file| require file }
数据库.yml

adapter: sqlserver
username: XXXX
password: XXXX
host: "XXX.XXX.XXX.XXX"
port: 1433
database: "mydatabasename"
pool: 5
timeout: 15000

读取YML文件,并在建立连接时使用该文件。顺便说一句,在模型内部建立连接是一种不好的做法。从模型外部建立与ActiveRecord::Base的连接。请阅读YML文件,并在建立连接时使用该文件。顺便说一句,在模型内部建立连接是一种不好的做法。从模型外部建立与ActiveRecord::Base的连接。