rake db:使用现有数据库迁移

时间:2016-03-18 16:22:19

标签: ruby-on-rails sql-server

我正在尝试为现有数据库创建模型。我对此数据库具有只读权限。我已经生成了我的模型,但是当我运行rake db:migrate时,它想要“创建”那些表。有没有办法满足rails需要迁移而不实际创建这些表(因为它们已经存在)?

1 个答案:

答案 0 :(得分:1)

如果您的模型和表格已经与Rails的命名方案对齐 - User model => users表等,并且您的模型继承自ActiveRecord::Base,然后您根本不需要运行迁移(无论如何都不能运行迁移,因为根据定义迁移会更改您的数据库并且您具有只读权限访问)。

如果表名与模型名称不匹配,您可以更改模型名称,也可以在模型中设置self.table_name=。例如,如果您有User模型但该表名为accounts,则可以执行此操作:

class User < ActiveRecord::Base
  self.table = 'accounts'

  # other stuff here
end

请点击此处了解详情:http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name-3D

此外,您应该删除迁移文件。如果要在db/schema.rb中查看架构,可以通过运行rake db:schema:dump来执行架构转储。假设您的设置在config/database.yml中正确无误,则应生成该文件。