我有一个sqlite3数据库有3个表,它有id
列作为主键,但没有created_at
或update_at
列。如何将现有的sqllite数据库转换为Rails的数据库?
我想在Rails3应用程序中使用它。 如何正确地将其转换为'Rails数据库'?
我有一个sqlite3数据库有3个表,它有id
列作为主键,但没有created_at
或update_at
列。如何将现有的sqllite数据库转换为Rails的数据库?
我想在Rails3应用程序中使用它。 如何正确地将其转换为'Rails数据库'?
编写一个迁移以将这两个字段添加到问题的表中。
例如,
命令行类似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
迁移重命名它们。
谢谢。是否有快速的方法将退出数据复制到rails数据库中。我知道如何编写脚本来'手动'做到这一点。但我想知道有没有更好的方法? – aztack 2013-05-13 00:27:35
当你说退出你是指现有的?即使访问来自rails,数据库仍将保持与sqlite3数据库完全相同。 – 2013-05-13 00:44:45
这听起来像你想要一个单一的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
你不必拥有这些列。如果他们错过了,Rails根本就不会使用它们。 – 2013-09-04 08:51:05