Как изменить часть схемы в Ruby on Rails? - PullRequest
3 голосов
/ 09 ноября 2010

Я пытался изменить строку schema.rb (t.string должен стать t.text), но я не могу изменить ее напрямую через файл, потому что когда я использую rake db: переносить изменения, возвращаются в предыдущее состояние.

Как я могу изменить эту строку?

РЕДАКТИРОВАТЬ: Если я что-то не так понял, я должен отредактировать файл в db / migrate.В моем случае это 2010110801532_create_posts.rb, где именно мне придется поместить часть change_column?

Это мой 2010110801532_create_posts.rb

class CreatePosts < ActiveRecord::Migration
  def self.up
    create_table :posts do |t|
      t.string :nome
      t.string :titolo
      t.text :contenuto

      t.timestamps
    end
  end

  def self.down
    drop_table :posts
  end
end

Ответы [ 3 ]

4 голосов
/ 09 ноября 2010

Шаг за шагом:

Сначала создайте новую миграцию:

./script/generate migration change_string_to_text

В сгенерированном файле миграции nnnnnnnnnnn_change_string_to_text.rb необходимо добавить строку:

change_column :table_name, :column_name, :text

Затем выполните rake migrate, чтобы применить изменения к базе данных.

3 голосов
/ 09 ноября 2010

Выполните миграцию, чтобы изменить ее :) Если вы используете миграции, то не рекомендуется редактировать файл схемы напрямую.

change_column :table_name, :column_name, :text
0 голосов
/ 09 ноября 2010

Файл schema.rb автоматически генерируется rake, поэтому любые сделанные вами изменения будут перезаписаны.Как упомянул Matchu, миграция - это путь, начните с:

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