Но что пользоваться максимально эффективно следует придерживаться след правил.
1. Индексы базы данных
В первую очередь определите индексы для всех внешних ключей и для всех колонок которые вы будете сортировать, по которым будете искать и группировать.
class CreateInvoices ActiveRecord::Migration def self.up create_table :invoices do |t|t. integer :number t. integer :year t. decimal :total_amount t. date :invoice_date t. integer :company_id t. integer :client_id t. timestamps end end def self.down drop_table :invoices end end |
Это обычная миграция генерируемая стандартной script/generate коммандой.
Теперь добавим индексы для сортируемых полей и ключей.
class CreateInvoices ActiveRecord::Migration def self.up create_table :invoices do |t|t. integer :number t. integer :year t. decimal :total_amount t. date :invoice_date t. integer :company_id t. integer :client_id t. timestamps end end add_index :invoices,:company_id add_index :invoices,:client_id add_index :invoices,:number add_index :invoices,:year def self.down drop_table :invoices end end |
Индексы важны для производительности.
База начинает летать по сравнению со стандартной миграцией.
Есть несколько плагинов которые будут полезны для вашей базы.
* http://github.com/eladmeidar/rails_indexes
* http://github.com/mlomnicki/automatic_foreign_key
* http://github.com/samdanavia/ambitious_query_indexer
2. Пишите сиды.
Начиная с рельсы 2.3.4 вместо того что б вписывать данные в миграции - пишите их в seed.rb
Обращаю внимание - фикстуры для тестов,сиды для продакшена(содержит данные без которых нельзя стартануть- например список странн или список станций метро)