如何解决:SQLException:没有这样的表:location:ALTER TABLE“位置” ADD“ user_id”整数

时间:2019-04-28 11:39:58

标签: ruby-on-rails ruby postgresql sqlite

我在Rails上遇到一些数据库问题。运行rails db:migrate时出现以下错误:

add_column(:locations, :user_id, :integer)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: no such table: locations: ALTER TABLE "locations" ADD "user_id" integer

问题似乎是我有一个迁移,试图将:user_id添加到表:locations中,但是该表不存在,因为我删除了它,因此它不在架构中。我该如何解决?我一直认为删除迁移是一个坏主意。

1 个答案:

答案 0 :(得分:1)

这取决于。 locations是通过迁移创建和删除的吗?如果是这样,从时间上来讲,失败的迁移是在这些迁移之间进行的吗?如果答案是,那么您不应删除它。

另一方面,如果您是在迁移之前之前手动删除或通过迁移删除了locations,则将其删除,因为这对您的架构没有意义。