使用Ruby on Rails的现有SQL Server数据库

时间:2013-03-07 04:06:03

标签: ruby-on-rails ruby sql-server ruby-on-rails-3

我正处于学习Ruby的早期阶段。我真的不知道如何使用在ruby上填充表和数据的现有数据库。每个指南,我在互联网上找到或找到的每篇文章总是使用迁移功能创建一个新文章。

但是在RoR上使用SQL Server中现有数据库的步骤是什么?

3 个答案:

答案 0 :(得分:9)

你很幸运,朋友。我的第一个Rails项目(7年前)反对一个可怕的SQL Server数据库。

根据以上所述,您需要适当地设置database.yml。但对于现有数据库,显然表和列名称不太可能符合Rails约定。好消息是你可以覆盖所有这些默认值。以下是这些指令的非详尽列表:

在AR :: Base的模型中,

set_table_name'actual_table_name'
set_primary_key'actual_primary_key_name'

在各种关联指令(has_one,has_many,belongs_to)上,有:foreign_key键,可以指定外键的名称。

现在,MS SQL Server允许您执行的任务之一是TERRIBLE,您可以在列名中嵌入空格。不用担心,您仍然可以使用write_attribute(“badly named column”)和read_attribute(“badly named column”)通过名称引用这些列。您也可以在各种指令中引用它们:

validates_length_of“传真号码”,:maximum => 17,:allow_nil =>真

最后,您可以参考这些恶意命名的列生成的隐含方法,如下所示:

self.send('Fax Number =',new_fax_number)

显然,你不能将它们称为符号,因为Ruby符号中不允许使用空格。

祝你好运,下次我希望你能使用真正的RDBMS,比如Informix :)。

答案 1 :(得分:0)

首先,您必须将应用程序设置为用户sql server以进行数据库连接。 您必须在 gemfile 中使用gem sql server ,并且必须相应地设置 database.yml 文件。

database.yml 中,在 config 文件夹中输入相同数据库的名称在此文件的“开发”部分。

    development:
  adapter: 
  database: db_name_dev
  username: 
  password:
  host: localhost
  socket:

答案 2 :(得分:0)

使用现有服务器。在database.yml中,您必须指定主机,端口和数据库名称。

`database: <host>:<port>/<database_name>`

例如

development:
  adapter: mysql2
  database: your.mysqlserver.com:1521/project_database
  username: project_user
  password: project_password