运行Heroku rake db:在Heroku上迁移不会迁移数据库
问题描述:
因此当我运行heroku rake db:migrate后,推送我的最新代码Heroku不会改变表格。但是,当我尝试在我的电脑上(我也使用Postgresql)并运行rake db:migrate时,它会迁移数据库并将必要的表和字段添加到现有表中。运行Heroku rake db:在Heroku上迁移不会迁移数据库
但是,从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
任何想法?
答
您需要使用“heroku restart”重新启动heroku服务器。
从应用程序日志输出?它看起来像Rails正在反思表格。首先,我要确保数据库尚未迁移。迁移后您是否重新启动了您的Rails应用程序?如果应用程序在生产模式下运行,Rails可能会保留旧模式。 另一种可能性是schema_information中的错误条目。我发现检查这种事情的最简单方法是使用轻敲将prod数据库下载到本地数据库。您也可以针对ActiveRecord :: Base.connection对象发出SQL命令以直接检查prod数据库。 – 2011-02-17 18:16:00
嘿,所以问题是(这是非常迟钝的,我没有想到这一点)我没有重新启动服务器。运行heroku重启解决了这个问题。 – 2011-02-17 18:25:49