Как мне работать с базой данных 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
Другие вопросы по тегам