Ruby on rails Rails迁移——RakeDB:status说迁移已经停止,但数据库已经迁移了?

Ruby on rails Rails迁移——RakeDB:status说迁移已经停止,但数据库已经迁移了?,ruby-on-rails,postgresql,migration,rake,Ruby On Rails,Postgresql,Migration,Rake,我有一个本地的PSQL数据库设置,在获取rake db:migrate以正常运行时遇到问题。例如,我的数据库已将其high_school列名更改为high_school_名称,但rake db:migrate失败,状态显示: up 20130307043554 Adding seo tables up 20130307185401 Create admin notes up 20130307185402 Move admin notes to comments up

我有一个本地的PSQL数据库设置,在获取rake db:migrate以正常运行时遇到问题。例如,我的数据库已将其high_school列名更改为high_school_名称,但rake db:migrate失败,状态显示:

up     20130307043554  Adding seo tables
up     20130307185401  Create admin notes
up     20130307185402  Move admin notes to comments
up     20130308160956  Add active flad to users
up     20130308214928  Add column public to users table
up     20130325203837  Add duration to videos
up     20130326171803  Update duration of videos
down    20130410145000  Fix high school name
up     20130410145028  Add high school id to users
up     20130410161705  Convert units for stats
up     20130410164209  ********** NO FILE **********
up     20130416142844  Add column coach id to users
为什么在迁移顺序中间的迁移失败/被读为“向下”?以下是错误:

Migrating to AddingSeoTables (20130307043554)
Migrating to CreateAdminNotes (20130307185401)
Migrating to MoveAdminNotesToComments (20130307185402)
Migrating to AddActiveFladToUsers (20130308160956)
Migrating to AddColumnPublicToUsersTable (20130308214928)
Migrating to AddDurationToVideos (20130325203837)
Migrating to UpdateDurationOfVideos (20130326171803)
Migrating to FixHighSchoolName (20130410145000)
(0.1ms)  BEGIN
==  FixHighSchoolName: migrating ==============================================
-- rename_column(:users, :high_school, :high_school_name)
(0.4ms)  ALTER TABLE "users" RENAME COLUMN "high_school" TO "high_school_name"
PG::Error: ERROR:  column "high_school" does not exist
: ALTER TABLE "users" RENAME COLUMN "high_school" TO "high_school_name"
(0.1ms)  ROLLBACK
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  column "high_school" does not exist
: ALTER TABLE "users" RENAME COLUMN "high_school" TO "high_school_name"

显然,存在模式问题或其他问题。不过,架构是通过远程分支跟踪的,所以我不知道问题出在哪里。

我怀疑down无法正确处理列重命名更改,除非只是添加或删除列


<>你可能想考虑的是用SQL更改名称。例如,如果将
high\u school
更改为
high\u school\u name
的迁移失败,并且数据库本身当前具有
high\u school\u name
,请将其重命名为
high\u school
,然后尝试运行迁移。这可能是您的一个选项。

在要重命名列的行末尾添加resque nil to