Как мне работать с базой данных LEGACY в Rails?
Я работаю над сайтом Rails, на котором представлены биржевые паевые инвестиционные фонды и ETF. У меня уже есть отдельный скрипт на Ruby, который запускается по ночам и заполняет базу данных Postgres данными об этих взаимных фондах и ETF.
Глава 6 учебника по Rails не совсем то, что я ищу. Различия между тем, что я пытаюсь сделать, и тем, что делает глава 6 руководства по Rails: 1. На моем сайте Rails нет необходимости создавать базу данных, потому что она уже заполнена. Поэтому я не думаю, что мне нужно использовать "rails generate" или "rake db:migrate". (Или я не прав?) 2. Мой сайт Rails только читает данные и не добавляет, не удаляет и не редактирует данные.
1 ответ
Вам не нужно создавать миграции. Просто создайте свои модели. Если таблица базы данных не соответствует названию модели, вы можете использовать set_table_name
для более старых версий Rails или self.table_name = 'table_name'
для новых версий. Если вы не используете стандарт Rails для внешних ключей и первичных ключей, вам придется указать и их.
Например:
# Assuming newer versions of Rails (3.2+, I believe)
class ETF < ActiveRecord::Base
self.primary_key = 'legacy_id'
self.table_name = 'legacy_etfs'
has_many :closing_prices, foreign_key: 'legacy_etf_id'
end
class ClosingPrice < ActiveRecord::Base
self.primary_key = 'legacy_id'
self.table_name = 'legacy_closing_prices'
belongs_to :etf, foreign_key: 'legacy_etf_id'
end