我在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
中,但是该表不存在,因为我删除了它,因此它不在架构中。我该如何解决?我一直认为删除迁移是一个坏主意。
答案 0 :(得分:1)
这取决于。 locations
是通过迁移创建和删除的吗?如果是这样,从时间上来讲,失败的迁移是在这些迁移之间进行的吗?如果答案是是,那么您不应删除它。
另一方面,如果您是在迁移之前之前手动删除或通过迁移删除了locations
,则将其删除,因为这对您的架构没有意义。