0

我用默认的 sqllite 制作了一个 rails 4 应用程序。但是在 heroku 上,当我运行我的第一次迁移时,我遇到了错误,同时一切都在本地完美运行:

$ heroku run rake db:migrate

错误:

Running `rake db:migrate` attached to terminal... up, run.3709
Migrating to AddIndexToUserName (20131003064019)
==  AddIndexToUserName: migrating =============================================
-- add_index(:users, :name, {:unique=>true})
PG::UndefinedColumn: ERROR:  column "name" does not exist
: CREATE UNIQUE INDEX  "index_users_on_name" ON "users"  ("name")
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::UndefinedColumn: ERROR:  column "name" does not exist
: CREATE UNIQUE INDEX  "index_users_on_name" ON "users"  ("name")/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'
/

这是我的 database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: poets_app_development
  pool: 5
  username: alain
  password: some_password
4

1 回答 1

1

所以,如果我要调试这个,我会做两件事。

  1. 在开发中使用与生产中相同的数据库(最佳实践,从长远来看将节省时间)。
  2. 尝试删除数据库并在本地重新运行迁移。我怀疑这也会失败。

    rake db:reset
    rake db:migrate
    

似乎您的迁移可能出现故障或引用数据库中尚未包含的内容。这也应该在本地引发错误。

于 2013-10-11T17:32:24.347 回答