изменение команд rake db для использования другого движка mysql - PullRequest
2 голосов
/ 04 октября 2011

Я пытаюсь настроить приложение rails 3 на кластере mysql.Я замечаю, что всякий раз, когда я создаю таблицы с помощью rake db: create или rake db: migrate, таблицы создаются с engine = InnoDb.Поскольку я использую кластер MySQL, это проблематично.Я должен создать таблицы с Engine = NDB.Мне было интересно, что было бы лучшим способом изменить логику rake db: create и rake db: migrate, чтобы она вместо этого создавала таблицы с engine = NDB.

1 Ответ

5 голосов
/ 04 октября 2011

для существующей таблицы вы должны создать миграцию для изменения таблицы, внутри нее вам нужно выполнить команду изменения таблицы:

class Change < ActiveRecord::Migration
  def self.up
    execute('ALTER TABLE some_tables ENGINE = NDB')
  end

  def self.down
    execute('ALTER TABLE some_tables ENGINE = innodb')
  end
end

Но для новой схемы вы можете использовать: option option в методе create_table:

create_table :some_tables, :option => 'ENGINE = NDB' do |t|
 ...
end

http://guides.rubyonrails.org/v3.0.3/migrations.html#creating-a-table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...