关于ruby:Heroku / Rails:PG :: Undefined表:错误“[tablename]”在heroku rails迁移中不存在

Heroku/Rails: PG:: Undefined Table: error “[tablename]” does not exist on heroku rails migration

我的应用程序在生产中运行良好,但是当我转向生产并运行'heroku run rake db:migrate'时,我收到以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
    PG::UndefinedTable: ERROR:  table"applications" does not exist
    Migrating to DropApplications (20160509013805)
        (0.8ms)  BEGIN
    == 20160509013805 DropApplications: migrating             =================================
    -- drop_table(:applications)
       (1.1ms)  DROP TABLE"applications"
        (0.5ms)  ROLLBACK
    rake aborted!
     StandardError: An error has occurred, this and all later migrations    canceled:

     PG::UndefinedTable: ERROR:  table"applications" does not exist
   : DROP TABLE"applications"

但是,我的数据库中有一个"应用程序"表。 这一下降可能与我放弃然后前几天重新制作应用程序脚手架有关。 我该如何解决?

1
2
3
4
5
6
7
8
9
      create_table"applications", force: :cascade do |t|
t.string  "name"
t.string  "gender"
t.date    "date_of_birth"
t.string  "gpa"
t.text    "essay"
t.datetime"created_at",    null: false
t.datetime"updated_at",    null: false
      end

所以当我运行rake:db setup时,我看到以下结果:

1
2
3
4
5
6
7
8
      Status   Migration ID    Migration Name
    --------------------------------------------------
       up     20160505200754  ********** NO FILE **********
       up     20160508234634  Create users
      up     20160508234945  Add devise to users
       up     20160509013805  ********** NO FILE **********
       up     20160509014328  ********** NO FILE **********
        20160509014911  Create applications

我尝试删除"创建应用程序"之前的两个。 所以,我尝试像这样耙heroku数据库:$ heroku运行rake --trace db:migrate VERSION = 20151127134901但我仍然得到"drop tables"的错误 - 它试图进行20160509013805迁移。 如何在没有文件的情况下完全删除这些迁移,这样它也不会尝试耙这些迁移? 先感谢您。


您的迁移文件可能存在问题。 如果您删除了一个但另一个相应的文件仍然存在,则可能导致此错误。 我会评论,但我还没有声誉。


重置heroku db:

Heroku不允许丢弃数据库。 相反,你应该做heroku pg:reset。 此命令需要您指定可以通过heroku pg:info,找到的DATABASE,然后您将得到如下输出:

1
2
3
4
5
6
7
8
9
10
11
12
=== DATABASE_URL
Plan:        Hobby-dev
Status:      Available
Connections: 0/20
PG Version:  9.4.4
Created:     2015-10-11 23:14 UTC
Data Size:   6.7 MB
Tables:      5
Rows:        0/10000 (In compliance)
Fork/Follow: Unsupported
Rollback:    Unsupported
Add-on:      postgresql-cubed-1838

获得上面的输出后,使用heroku pg:reset命令并附加"Add-on"字段值。 示例我将这样做:

1
$ heroku pg:reset postgresql-cubed-1838