【问题标题】:rake db:migrate no longer working, no error messagerake db:migrate 不再工作,没有错误消息
【发布时间】:2014-11-17 18:36:50
【问题描述】:

我找不到关于 rake db:migrate 失败且没有错误消息的类似问题的答案。我尝试获取特定版本,但也没有用。我得到以下信息:

** 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,它告诉我缺少几个迁移文件,但我不知道它们是什么。只是丢失的文件。

up     20140506035953  ********** NO FILE **********
up     20140506035954  ********** NO FILE **********
up     20140506035955  ********** NO FILE **********

我认为从 schema_migrations 表中删除条目可以解决问题,但它没有。

我相信问题是在运行捆绑更新后开始的。我在带有 10.9.5 的 Mac 上使用 RVM 运行 rails 4.1.4,ruby 2.1.3p242。运行“rake about”会得到以下结果:

About your application's environment
Ruby version              2.1.3-p242 (x86_64-darwin14.0)
RubyGems version          2.2.2
Rack version              1.5
Rails version             4.1.4
JavaScript Runtime        Node.js (V8)
Active Record version     4.1.4
Action Pack version       4.1.4
Action View version       4.1.4
Action Mailer version     4.1.4
Active Support version    4.1.4
Middleware                Rack::Sendfile, ActionDispatch::Static, Rack::Lock, #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007fadd50e54e0>, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, Rack::Head, Rack::ConditionalGet, Rack::ETag
Environment               development
Database adapter          postgresql
Database schema version   20141117165919

附加信息:

这将被转储到我的日志文件中。

[1m[36mActiveRecord::SchemaMigration Load (0.9ms)[0m  [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
[1m[35mActiveRecord::SchemaMigration Load (0.4ms)[0m  SELECT "schema_migrations".* FROM "schema_migrations"

任何建议表示赞赏。

【问题讨论】:

  • 丢失的迁移文件不会导致问题。我在 schema_migration 表中删除了对它们的引用,但仍然有同样的问题。我希望有人对调试问题有建议。在这个时间点,看来我必须使用 SQL 来创建和管理表。

标签: ruby ruby-on-rails-4 rake


【解决方案1】:

我需要对此做出回应,因为没有足够的代表我还不能发表评论(似乎很愚蠢,因为此时发表评论可能会更好)。

但是,丢失的文件可能是旧的迁移文件,它们以时间戳文件名开头,后跟方法。例如。

20140506035953_create_table.rb

在某些时候,您必须删除迁移文件,因为您不再需要或不再需要它们。

如果迁移导致数据库正常运行,我不会担心。

【讨论】:

  • 丢失的迁移文件不会导致问题。我在 schema_migration 表中删除了对它们的引用,但仍然有同样的问题。我希望有人对调试问题有建议。在这个时间点,我似乎不得不用 SQL 来创建和管理表。
【解决方案2】:

我在Rails rake db:migrate has no effect 找到了答案。我之前尝试运行 VERSION 选项但没有成功。添加具有特定版本号的“重做”有效。以下解决了问题。

rake db:migrate:redo VERSION=20141117165919 --trace

【讨论】:

    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2017-02-17
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多