私はRubyの学習の初期段階にありますが、Rubyのテーブルとデータでいっぱいの既存のデータベースをどのように使用するかについては本当にわかりません。私がインターネット上で持っている、または見つけたすべてのガイド、すべての記事は、移行機能を使用して常に新しいものを作成しています。
しかし、RoR上のSQLサーバーで既存のデータベースを使用するための手順はどれですか?
私はRubyの学習の初期段階にありますが、Rubyのテーブルとデータでいっぱいの既存のデータベースをどのように使用するかについては本当にわかりません。私がインターネット上で持っている、または見つけたすべてのガイド、すべての記事は、移行機能を使用して常に新しいものを作成しています。
しかし、RoR上のSQLサーバーで既存のデータベースを使用するための手順はどれですか?
運が良かった、友よ。私の最初のRailsプロジェクト(7年前)は、ひどくセットアップされたSQLServerデータベースに反対していました。
上記のとおり、database.ymlを適切に設定する必要があります。ただし、既存のデータベースの場合、テーブル名と列名がRailsの規則に準拠している可能性は低いことは明らかです。良いニュースは、これらのデフォルトをすべてオーバーライドできることです。これらのディレクティブの非網羅的なリストは次のとおりです。
AR :: Baseから派生したモデルでは、
set_table_name'actual_table_name' set_primary_key'actual_primary_key_name
'
さまざまな関連付けディレクティブ(has_one、has_many、belongs_to)には、外部キーの名前を指定できる:foreign_keyキーがあります。
さて、MS SQL Serverでできることの1つは、ひどいことですが、列名にスペースを埋め込むことができるということです。恐れることはありません。write_attribute( "不正な名前の列")とread_attribute( "不正な名前の列")を使用して、これらの列を名前で参照できます。次のようなさまざまなディレクティブでそれらを参照することもできます。
validates_length_of "Fax Number"、:maximum => 17、:allow_nil => true
最後に、これらの悪魔のような名前の列が次のように生成する暗黙のメソッドを参照できます。
self.send('Fax Number ='、new_fax_number)
明らかに、Rubyシンボルではスペースが許可されていないため、それらをシンボルとして参照することはできません。
幸運を祈ります。次回は、Informixのような実際のRDBMSを使用できるようになることを願っています:)。
まず、データベース接続のためにユーザーsqlサーバーにアプリケーションをセットアップする必要があります。gemfileでgemforsql serverを使用し、それに応じてdatabase.ymlファイルを設定する必要があります。
database.ymlのconfigフォルダーに、同じデータベースの名前をこのファイルの開発部分に入れます。
development:
adapter:
database: db_name_dev
username:
password:
host: localhost
socket:
既存のサーバーを使用します。database.yml
で、ホスト、ポート、およびデータベース名を指定する必要があります。
`database: <host>:<port>/<database_name>`
例えば
development:
adapter: mysql2
database: your.mysqlserver.com:1521/project_database
username: project_user
password: project_password