我正在尝试调试我在迁移数据库时遇到的问题。
我让我的应用程序运行没有问题,并将其推送到 heroku,然后运行rake db:migrate
并收到错误
PG::Error: 错误:关系“地点”不存在 第 4 行:在哪里 a.attrelid = '"places"'::regclass ^ : 选择 a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d 在 a.attrelid = d.adrelid 和 a.attnum = d.adnum WHERE a.attrelid = '"places"'::regclass AND a.attnum > 0 AND NOT a.attisdropped 由 a.attnum 订购
我发现迁移在本地很好,但在服务器上迁移时却不行,这很奇怪。我发现其他一些人也有类似的问题,但从未发现有人有解决方案。我在 StackOverflow 上找到的答案没有被接受。在尝试了几个小时不同的事情之后,我想我会尝试从头开始创建一个新的 heroku 应用程序并将我的应用程序推送到它(对其他人有用),基本上是重新开始。
当我这样做时,我得到了同样的错误,但现在在wineries
.
奇怪的是,在 Heroku 的推荐下,我尝试在本地创建一个新的数据库,并运行我的迁移。
现在在本地,我得到了同样的错误,但是在 table 上admin_users
。
我很确定实际的迁移文件没有任何问题,因为每次运行迁移时,我都会得到一个不同的表,因此在某些方面会影响到不同的迁移。
我试过删除一些宝石,但仍然出现同样的错误。
rake:db 是否在迁移文件以外的任何文件之外查找?这可能是关系问题吗?
关于如何解决这个问题的任何其他建议?