Rails 迁移认为我正在尝试根据我的语法用法更改名为符号或字符串的表。为什么?



所以,我有这样的迁移行:

  add_column :users, :account_id, :integer

给出错误:

SQLite3::SQLException: no such table: symbols: ALTER TABLE "symbols" ADD "account_id" integer

但是当我做的时候

  add_column "users", "account_id", "integer" #changed everything to strings

我得到了类似的错误

SQLite3::SQLException: duplicate column name: account_id: ALTER TABLE "strings" ADD "account_id" integer

注意:
•不管我是否使用add_column的括号(add_column(args))。
•在我的任何迁移中,我都没有提到任何可以命名为"字符串"或"符号"的表

因此,无论我试图修改的表的对象类型是什么,它都错误地认为我要修改以该对象类型命名的表。=

根据http://api.rubyonrails.org/classes/ActiveRecord/Migration.html我的语法正确。

这些迁移工作在另一台机器上,所以这是一个环境问题。

我用的是Mac OS X lion。
Ruby 1.8.7
Rails 2.3.8
Rake 0.8.7

EDIT(按要求):The Migration: http://pastebin.com/xhwP8TFy

所以,因为Stackoverflow有愚蠢的规则,我不得不使用两个不同的帐户。

发现,这是因为我如何扩展"对象"类。在config/initializers中,我有一些对象方法。

显然存在冲突。虽然它从来没有告诉我关于它的任何事情。

所以…不要在那个文件夹中扩展对象

最新更新