1

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

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

4

2 回答 2

1

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

  • 您需要让您的应用程序连接到两个不同的数据库。您的“真实”数据库和 sqlite3 数据库
  • 在成功连接到两个数据库后,您可能需要设置模型并覆盖一些默认的 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
于 2013-05-13T00:41:27.573 回答
0

编写迁移以将这两个字段添加到有问题的表中。

例如,

命令行类似script/generate migration add_timestamps_to_user

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

例如

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

此外,请确保外键的格式为 othertablename_id,如果不是,请考虑通过rename_column迁移重命名它们。

于 2013-05-13T00:23:24.940 回答