Но что пользоваться максимально эффективно следует придерживаться след правил.
1. Индексы базы данных
В первую очередь определите индексы для всех внешних ключей и для всех колонок которые вы будете сортировать, по которым будете искать и группировать.
class CreateInvoices ActiveRecord::Migrationdef self.upcreate_table :invoices do |t|t. integer :numbert. integer :yeart. decimal :total_amountt. date :invoice_datet. integer :company_idt. integer :client_idt. timestampsendenddef self.downdrop_table :invoicesendend |
Это обычная миграция генерируемая стандартной script/generate коммандой.
Теперь добавим индексы для сортируемых полей и ключей.
class CreateInvoices ActiveRecord::Migrationdef self.upcreate_table :invoices do |t|t. integer :numbert. integer :yeart. decimal :total_amountt. date :invoice_datet. integer :company_idt. integer :client_idt. timestampsendendadd_index :invoices,:company_idadd_index :invoices,:client_idadd_index :invoices,:numberadd_index :invoices,:yeardef self.downdrop_table :invoicesendend |
Индексы важны для производительности.
База начинает летать по сравнению со стандартной миграцией.
Есть несколько плагинов которые будут полезны для вашей базы.
* 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
Обращаю внимание - фикстуры для тестов,сиды для продакшена(содержит данные без которых нельзя стартануть- например список странн или список станций метро)