Недавно я просмотрел файл schema.rb и был встревожен, обнаружив, что некоторые столбцы, которые существуют в моей базе данных, не отображаются, а некоторые таблицы полностью отсутствуют. Пропущенные столбцы были добавлены в базу данных через миграции «def change add_column», хотя некоторые столбцы, которые были добавлены таким образом, выглядят так, как ожидалось в schema.rb.Почему мой файл schema.rb не обновлен?
При ближайшем рассмотрении я понял, что schema.rb не обновляется с момента создания таблицы Users.
20151019205241_create_users.rb:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps null: false
end
end
end
Это не вызвало вопрос для меня на практике, но я думал, что schema.rb должен был быть автоматически обновляется, и что было бы важно, чтобы он обновил чтобы воссоздать базу данных. Может ли кто-нибудь помочь мне понять, почему он не будет обновляться?
Одна из возможностей заключается в том, что она перестала быть обновленной, когда я переключил свою базу данных с sqlite3 на postgresql. Я точно не помню, но думаю, что время имеет смысл.
Не знаете, как переключение базы данных мешает «schema.rb». Правильно ли обновляется файл, когда вы выполняете 'rake db: migrate' сейчас? (Вам не нужно добавлять новые миграции для выполнения этой задачи Rake.) – Raffael
Это не так. В следующий раз я обновляю базу данных каким-то образом, я проверю это. На данный момент работает решение @ smefju. Спасибо за ваш ответ! Вы правы, похоже, что это не связано с переключением баз данных. –