我正处于学习 Ruby 的早期阶段。我真的不知道如何使用现有的数据库,其中包含 ruby 上的表和数据。我在互联网上拥有或找到的每一篇指南、每一篇文章总是使用迁移功能创建一个新的。
但是,在 RoR 上的 SQL Server 中使用现有数据库的步骤是什么?
我正处于学习 Ruby 的早期阶段。我真的不知道如何使用现有的数据库,其中包含 ruby 上的表和数据。我在互联网上拥有或找到的每一篇指南、每一篇文章总是使用迁移功能创建一个新的。
但是,在 RoR 上的 SQL Server 中使用现有数据库的步骤是什么?
你很幸运,朋友。我的第一个 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 允许您做的一件可怕的事情是您可以在列名中嵌入空格。不要害怕,您仍然可以使用 write_attribute("badly named column") 和 read_attribute("badly named column") 按名称引用这些列。您也可以在各种指令中引用它们,如下所示:
validates_length_of "传真号码", :maximum => 17, :allow_nil => true
最后,您可以参考这些名称异常的列生成的隐含方法,如下所示:
self.send('传真号码=', new_fax_number)
显然,您不能将它们称为符号,因为 Ruby 符号中不允许使用空格。
祝你好运,下次我希望你能使用真正的 RDBMS,比如 Informix :)。
首先,您必须将应用程序设置为用户 sql server 以进行数据库连接。您必须在gemfile中使用 gem for sql server并且必须相应地设置database.yml文件。
在database.yml中,在config文件夹中将相同数据库的名称放在该文件的 Development 部分中。
development:
adapter:
database: db_name_dev
username:
password:
host: localhost
socket:
使用现有服务器。在您的database.yml
文件中,您必须指定主机、端口和数据库名称。
`database: <host>:<port>/<database_name>`
例如
development:
adapter: mysql2
database: your.mysqlserver.com:1521/project_database
username: project_user
password: project_password