Миграция Rails после сброса базы данных - PullRequest
0 голосов
/ 16 декабря 2011

Привет, у меня общая проблема с миграцией:

Когда я создаю такие миграции:

class RenameColumn < ActiveRecord::Migration
  def change
    rename_column :users, :hotel_stars, :rating_stars
    rename_column :users, :restaurant_stars, :price_stars
  end
end

и измените код в файле Model-, View- и Controller соответственно (я не создаю новую модель и т. Д.):

т.

Model: attr_accessible :rating_stars, :price_stars   

(вместо: hotel_stars,: restaurant_stars)

Controller: @rating = current_user.rating_stars

Когда я сейчас запускаю миграцию (rake db: migrate) -> это работает! Но после рейка db: drop, rake db: create, rake db: migrate больше не работает!

Что не так с этой миграцией? Как вы можете создать миграции, которые работают с и без сброса базы данных?

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

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

Вы «могли бы» облегчить это, добавив миграцию, которая получает вашу базу данных там, где ваша новая миграция ожидает ее, или вы можете исправить миграцию, которая была изменена ранее.

В зависимости от того, сколько у вас других разработчиков, я бы выбрал последнее в этом случае.

0 голосов
/ 16 декабря 2011

Я думаю, что ваша проблема в том, что rake db: create не перестраивает вашу базу данных из schema.rb. Для этого вам нужно выполнить rake db: setup вместо rake db: create. В любом случае я бы попробовал rake db: reset вместо drop / create, так как считаю, что это выполнит то, что вы хотите сделать за один шаг.

Введите rake -T для просмотра списка доступных задач и того, что они делают.

Также см. Здесь для получения дополнительной информации о миграции рельсов: http://guides.rubyonrails.org/migrations.html

...