我无法在我的 RoR 应用程序中为我的 sql server 数据库中的预先存在的表创建模型。
在 ruby 控制台中,当我键入: 时ActiveRecord::Base.connection.tables
,将返回以下内容:["Bank"、"Owner"、"Location"、"Zone"]。
以上内容在应用程序中未创建任何模型或迁移的情况下返回。所以下一步是创建一个模型......
rails g model Bank
并编辑模型:
class Bank < ActiveRecord::Base
set_table_name = "Bank"
set_primary_key "BankID"
end
并编辑迁移:
class CreateBanks < ActiveRecord::Migration
def change
create_table "Master.Bank" do |t| // Because Bank is in the 'Master' schema, not the default 'dbo'
t.timestamps
end
end
end
我从自己的研究中了解到的对模型和迁移文件的编辑应该允许我成功地将我的应用程序中的模型链接到旧数据库,其表名与 Rails 的约定和适当的模式不匹配。
但是,在执行完所有这些操作后,该命令rake db:migrate
会生成错误“TinyTds::Error: 数据库中已经有一个名为‘Bank’的对象。”
我究竟做错了什么?