0

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

私は何を間違っていますか?

4

1 に答える 1