将新的Rails应用程序连接到现有的MySQL数据库

时间:2015-04-10 21:58:37

标签: mysql ruby-on-rails ruby-on-rails-4 sequelpro

我有一个全新的Rails应用程序,我想挂钩到现有的MySQL数据库来做一些读写。我已编辑了database.yml文件以连接到新数据库。 rails crails s不会抛出错误,导致我认为连接有效。

我还没有创建任何模型或迁移。我想知道是否有一种简单的方法可以将我需要的模型放入我的Rails项目中。

如果我需要导出备份或架构,我可以使用Sequel Pro连接到数据库。或者我是否需要生成模型并手动复制所有列类型和所有内容?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

ActiveRecord会为您检测列名称!您不需要创建任何迁移,但您必须创建模型。

当您创建活动记录模型时,活动记录将通过复制类名来推断您要连接的表名。

所以:

# app/models/book.rb

class Book < ActiveRecord::Base
end

将尝试找到一个名为“books”的表。然后,您可以实例化Book的实例,并且您会发现它具有字段名称的getter / setter。

如果您的表不遵循此命名约定,您还可以手动定义表名:

class Mouse < ActiveRecord::Base
  self.table_name = "mice" 
end

http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html

答案 1 :(得分:0)

首先为orders表创建具有以下结构的空模型文件:

class Order < ActiveRecord::Base
end

如果有这么多,你可以在订单表上获得所有活跃的记录魔力。您可以从控制台执行以下操作:

> Order.count
 => # Shows the number of rows in orders table
> Order.first
 => # Return the first row from the table
> Order.where(...)
 => # Return selected rows from the table meeting the specified criteria.

有关通过ActiveRecord::Base的子类化获得的更多有效记录功能,请参阅Active Record Query Interface