我正在尝试为现有数据库创建模型。我对该数据库具有只读访问权限。我已经生成了模型,但是当我运行rake db:migrate时,它想“创建”那些表。有没有一种方法可以满足rails的迁移需求,而无需实际创建这些表(因为它们已经存在)?
如果您的模型和表格已经符合Rails的命名方案User
-model => users
table等,并且您的模型继承自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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句