如何将现有的sqlite数据库转换为Rails数据库?

时间:2013-05-13 00:21:44

标签: ruby-on-rails sqlite

我有一个包含3个表的sqlite3数据库,其中id列为主键,但没有created_atupdate_at列。

我想在Rails3应用程序中使用它。 如何将其正确转换为“Rails数据库”?

2 个答案:

答案 0 :(得分:1)

听起来你想要一个单独的rails应用程序来访问两个不同的数据库?您可能需要做两件事:

  • 您需要将应用连接到两个不同的数据库。您的“真实”数据库和sqlite3 db
  • 在成功连接到两个数据库之后,您可能需要设置模型并覆盖一些默认的Rails命名约定。

对于第一项,您可以按照以下步骤操作:Connecting Rails 3.1 with Multiple Databases

对于第二项,如果表格不遵循Railsy命名方式,您可以创建一个如下所示的模型:

# app/models/foo.rb
class Foo < ActiveRecord::Base
  establish_connection "your_sqlite_connection_name_#{Rails.env}"
  self.table_name = "name_of_table_in_sqlite_db"
end

答案 1 :(得分:0)

编写一个迁移来添加有问题的表中的这两个字段。

例如,

命令行类似script/generate migration add_timestamps_to_user

然后编辑迁移并将两个字段放在那里。

e.g。

def change
  add_column :users, :created_at, :date
  add_column :users, :updated_at, :date
end

另外,请确保外键的格式为othertablename_id,否则请考虑使用rename_column迁移重命名。