在Heroku上运行rake db:migrate命令未能迁移数据库。

3
当我在Heroku上运行rake db:migrate时,在推送最新代码后,Heroku不会更改表。但是,当我在我的电脑上尝试(我也使用Postgresql)并运行rake db:migrate时,它会迁移数据库并将必要的表和字段添加到现有表中。然而,在Heroku上,我没有收到任何错误消息,这是我收到的响应。
 SQL (2.4ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'flow_elements'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.2ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"flows"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.7ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"flows"'::regclass

  SQL (2.7ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'flows'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.3ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"images"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.3ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"images"'::regclass

  SQL (2.3ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'images'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.2ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"login_histories"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.8ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"login_histories"'::regclass

  SQL (2.7ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'login_histories'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.1ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"projects"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.2ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"projects"'::regclass

  SQL (2.6ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'projects'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.3ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"projects_users"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.5ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"projects_users"'::regclass

  SQL (2.4ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'projects_users'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (2.2ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"questions"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.2ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"questions"'::regclass

  SQL (2.4ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'questions'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  Columns for index questions_fts_idx on questions (1.8ms)   SELECT a.attnum, a.
attname
 FROM pg_attribute a
 WHERE a.attrelid = 48972
 AND a.attnum IN (0)

  SQL (2.1ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"screens"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (4.3ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"screens"'::regclass

  SQL (2.4ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'screens'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

  SQL (3.0ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc,
 a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"users"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

  PK and serial sequence (3.6ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"users"'::regclass

  SQL (2.4ms)   SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
 FROM pg_class t, pg_class i, pg_index d
 WHERE i.relkind = 'i'
 AND d.indexrelid = i.oid
 AND d.indisprimary = 'f'
 AND t.oid = d.indrelid
 AND t.relname = 'users'
 AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"'
,'public') )
 ORDER BY i.relname

有什么想法吗?

这个输出是来自app日志吗?看起来只是Rails在检查表。首先要确保数据库没有被迁移过。你在迁移后有重新启动rails应用程序吗?如果应用程序以生产模式运行,可能是Rails仍然保留着旧的架构。另一个可能性是schema_information中的错误条目。我发现检查这种事情的最简单方法是使用taps将prod db拉到本地数据库。您也可以针对ActiveRecord :: Base.connection对象发出SQL命令,以直接检查prod db。 - Mat Schaffer
1
嘿,问题是(这真的很愚蠢,我之前没有考虑到)我没有重新启动服务器。运行 heroku restart 解决了问题。 - Emil Hajric
1个回答

5
您需要使用“heroku restart”重新启动Heroku服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接