我对rails迁移有一个奇怪的问题。 我的数据库/迁移文件夹包含迁移文件,一切正常。 但是刚才我用rails g migration MigrationName
创建了一个新文件,它生成了一个新文件。然后当我运行了rake db:migrate
它回滚所有和我的纲要版本变为0. 现在,当我运行rake db:migrate
它什么都不做,而db/migrate包含我所有的迁移。 我试过rake db:reset db:drop db:create db:migrate
但没有执行迁移。然而它说“迁移正在等待运行rake db:migrate RAILS_ENV = development”我徒劳地做了什么。Rails迁移问题Postgresql
我很困惑。有没有人有过这个问题?
我只是试着RAILS_ENV=development rake db:migrate --trace
,它返回:
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:schema:dump (first_time)
** Invoke environment
** Invoke db:load_config
** Execute db:schema:dump
运行:
rake db:migrate:status
给我:
database: database_development
Status Migration ID Migration Name
--------------------------------------------------
up 000 ********** NO FILE **********
down 20150613120151 Devise create users
down 20150613120734 Devise create admins
down 20150614114949 Create gender
down 20150614115642 Create events
down 20150614142610 Create multi events
我尝试了许多东西: - 我退学我的数据库,重新启动postgresql并再次运行rake db:setup db:migrate
。 rake db:migrate:status
告诉我,迁移正在等待,但它不会迁移。 这让我疯了...
编辑 我手动更新数据库schema_migrations添加时间戳 模式:负荷工作,但是当我运行耙分贝:迁移到检查其所有的好,它rolledback ..
编辑 如果我手动填写schema_migrations版本数据库的时间戳,当我这样做rake db:schema:status
他们都到了,我的新移民到了,但如果我这样做rake db:migrate
它试图恢复,如果我想跑rake db:rollback
你好,谢谢你的帮助。我不知道这是什么000迁移。我也不明白。我试图在我的本地机器上使用生产环境进行迁移。 – stacker
我会试试这个。但是,这个000迁移来每次运行耙db:创建 – stacker
好吧,看来正常Rails生成这个'000'文件,然后你运行'db:create'。 – Casper