我正在运行 Rails 3.0.3,但在迁移中不小心打错了字:我创建了一个迁移,该迁移创建了一个类型为 boolen
的新列。 (应该是 boolean
)。我运行了迁移,Rails 没有警告我这是一个无效类型的列,我可以发誓它在以前的版本中是这样吗?
现在,每当我尝试在迁移中添加、删除或修改任何内容时,都会收到以下错误:
undefined method `to_sym' for nil:NilClass
我什至无法回滚或丢弃。我保存了较早版本的数据库和文件树,但这个问题让我发疯,因为这不是我第一次看到这种情况发生。
如何在没有 Rails 提示的情况下有效地删除列(最好不要手动深入数据库)?
最佳答案
如果您使用 SQLite 数据库,您可能会收到此错误,因为 SQLLite 不提供删除列功能。
http://www.sqlite.org/faq.html#q11
SQLLite 建议您创建一个临时表,其中仅包含原始表中所需的列,传输数据,然后交换表。
关于ruby-on-rails - 关于迁移 : undefined method `to_sym' for nil:NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4634557/