如何使用存在的数据库?

时间:2013-12-10 08:08:32

标签: ruby-on-rails

我有一个由PHP构建的现有Web应用程序。

现在我需要通过Rails重建这个应用程序。

我在数据库中已有以下数据:

--------------------------------------------------
| user_id | user_name         | .....             
--------------------------------------------------
| 1       | david             | .....
--------------------------------------------------
| 2       | jobs              | .....
--------------------------------------------------

我使用以下命令生成用户模型:

rails g model User

我手动在用户迁移文件中键入列:

 create_table :users do |t|
      t.string :user_name
      ...
      ...
      t.timestamps
end 

然后我尝试使用以下命令来读取数据:

@users = User.first

但它给我一个错误,它告诉我应该使用 rake db:migrate 来生成表。

所以我认为我应该导出我的数据并使用 rake db:migrate 来构建我的数据库结构,并导入我的数据。

对于几张桌子来说有点麻烦。

但是,实际上我有太多的表(大约54个),所以我必须手动编写54个迁移。

  

那么,有没有一种简单的方法可以使用现有数据库?

BTW,我使用rails4

2 个答案:

答案 0 :(得分:0)

您可以将表格转储到schema.rb

rake db:schema:dump

然后将其转换为初始迁移(001_initial_migration.rb):

class InitialMigration < ActiveRecord::Migration
  def self.up
    # put whole schema.rb here
  end

  def self.down
    # drop everything
  end
end

您不需要编写54次迁移,只需要一次大的迁移。

还有rmre gem,它会尝试为您编写模型。

答案 1 :(得分:0)

您不需要为现有表编写迁移,只需为现有表编写模型,例如:

class User < AR
 self.table_name = "users" # your existed table name in db
 # attr_accessible :attrs
 # Associations,remember indicate :foreign_key 
end

如果要添加新表,请照常执行