我有一个带有 3 个表的 sqlite3 数据库,其中id
列作为主键,但没有created_at
或update_at
列。
我想在 Rails3 应用程序中使用它。如何正确将其转换为“Rails 数据库”?
我有一个带有 3 个表的 sqlite3 数据库,其中id
列作为主键,但没有created_at
或update_at
列。
我想在 Rails3 应用程序中使用它。如何正确将其转换为“Rails 数据库”?
听起来您想要一个 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
编写迁移以将这两个字段添加到有问题的表中。
例如,
命令行类似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
迁移重命名它们。