【问题标题】:Rails 3: "Schema migrations table does not exists yet"Rails 3:“模式迁移表尚不存在”
【发布时间】:2013-05-31 15:17:50
【问题描述】:

所以几个月前,出于某种原因,我收到了一条奇怪的 git 消息并且害怕部署。所以我开始直接对生产应用程序进行更改,并尝试手动对我的本地代码进行相同的更改。

所以现在是时候更新所有内容了,我想将我的本地代码与生产代码同步,并开始使用 git 和 capistrano 再次进行部署。所以我从生产服务器下载了代码,并将粘贴的一些文件复制到我的本地代码中,以确保我不会覆盖生产服务器上的任何内容。

我现在可以运行 cap:deploy 并且一切似乎都按预期工作。问题是,我在我的开发副本上创建了一个新列,我正要运行cap deploy:migrate,但我担心它会清除我的生产数据库。

所以我运行rake db:migrate:status 并收到消息Schema migrations table does not exists yet. 我已经检查了我的生产数据库并且架构迁移表在那里。因此,该应用程序似乎无法识别我当前的迁移版本,我担心如果我运行 cap deploy:migrate 将运行所有迁移并清除我的数据库。

为什么我会收到此消息?我该怎么办?

【问题讨论】:

  • 我也有类似的问题...stackoverflow 蟋蟀似乎对我们俩都在唧唧喳喳。
  • 出于好奇,您使用的是 sqlite 数据库吗?

标签: mysql ruby-on-rails ruby migration


【解决方案1】:

我的情况可能与您有些不同,但我也得到了相同的信息。 我在本地 PC 上使用 Rails 4 进行开发。

尝试仅使用 db:migrate

【讨论】:

    【解决方案2】:

    我发现的一个解决方案是使用 abort_if_pending_migrations:

    export RAILS_ENV=production; bundle exec rake db:abort_if_pending_migrations
    

    如果您的迁移是最新的,这似乎不会打印任何内容,如果不是,则列出需要更新的表。这适用于 Rails 4.1.8。

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 2011-10-29
      • 1970-01-01
      • 2012-07-26
      • 2011-07-28
      • 2011-07-27
      • 1970-01-01
      • 2011-07-07
      • 2018-09-22
      相关资源
      最近更新 更多