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: データベースに「銀行」という名前のオブジェクトが既に存在します」というエラーを生成します。
私は何を間違っていますか?