2013-10-11 150 views
0

我制作了一个使用默认的sqllite的rails 4应用程序。但是,在Heroku上运行我的第一次迁移我得到的错误,同时一切完美的作品在本地:Heroku db:在表格之前迁移添加迁移

$ 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 
+0

你是否按照导轨4指导? https://devcenter.heroku.com/articles/getting-started-with-rails4 – agmin

+0

您是否已验证此迁移AddIndexToUserName(20131003064019) - 是否在为用户创建迁移后实际列出?还有,你所有的迁移都签入git?如果你有可能尝试重置你的数据库上的heroku'heroku pg:重置DATABASE',然后再迁移 – trh

+0

是的这是正确的设计后创建用户(20131002004317),当我输入heroku pg:重置DATABASE和迁移错误是再次相同的(对不起,反应迟缓) –

回答

1

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

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

    rake db:reset 
    rake db:migrate 
    

好像你的迁移可能会失灵或引用的东西,还没有在数据库中。这也应该在本地抛出一个错误。

+0

该死未 –

+0

你能不能给我的错误,它在本地抛出的工作?它会在本地抛出一个错误吗? – ezis

+0

我想通了,但谢谢! –