Я пишу сценарий миграции для создания таблицы с столбцом первичного ключа с именем guid
и является VARCHAR(25)
. Проблема в том, что я чувствую, что мне нужно удвоить свои усилия, чтобы достичь того, что должно быть возможно за один шаг.Rails Migration Создать таблицу Первичный ключ
Если я бег:
create_table(:global_feeds, :primary_key => 'guid') do |t|
t.string :guid, :limit => 25
t.text :title
t.text :subtitle
...
t.timestamps
end
Я получаю таблицу с первичным ключом называется guid
не Колонка называется id
(что я хочу). Однако проблема заключается в том, что столбец guid
- это INT(11)
с включенным автоматическим приращением. Так что я должен выполнить одну дополнительную команду:
change_column :global_feeds, :guid, :string, :limit => 25
кажется немного свернутый придется в основном запустить два SQL команды, чтобы получить то, что я считаю, должно быть возможно в одном.
Любые предложения по оптимизации этого?
К сожалению, это все еще два оператора SQL, подобные моим. Вы только что перевернули порядок операций: сначала вы определяете тип столбца, а затем указываете первичный ключ. – Ryan
Я думаю, вы не можете сделать это за одну операцию, но я думаю, что в этом нет ничего плохого. Это нормально для миграции, чтобы иметь два оператора для более сложных случаев. –
Также я не уверен, что ActiveRecord отлично работает с не целочисленными первичными ключами вообще. –