2011-12-01 70 views

回答

1

方法如下:

add_column :users, :is_active, :boolean, :after => :some_column 

其中:some_column是你想要的列名添加:之後的is_active。

1

一般來說,你不能和你不應該在意。關係數據庫中的表格並沒有特別的順序;這就是爲什麼你應該總是指定列時,你插入,並從來沒有說過像select * ...(是的,ActiveRecord這樣做,但是,但這並不意味着這是一個好主意,只是因爲AR跳下懸崖並不意味着你應該等)。

如果你堅持嘗試爲它做數據庫的工作則袖珍的方法是:

  1. 複製或表重命名爲另一個表。
  2. 刪除原文(除非您在(1)中重命名)。
  3. 按照所需順序創建包含列的新表。 (3)希望數據庫關注您的訂單。
  4. 將數據從(1)中的表複製到(3)中的「新」表中。
  5. ...
  6. 利潤。

如果您使用MySQL或MySQL2數據庫適配器,則可以使用:after => :some_column optionadd_column。如果你使用的是SQLite或PostgreSQL,那麼看看上面的便攜方式。如果您使用其他任何東西,那麼您必須閱讀adapater的文檔或源代碼才能看到支持的內容。

但是,你應該問自己,爲什麼你認爲你想在繼續之前做到這一點。

+0

:在sqlite上工作後也是 – Amala

+0

是的,我認爲我很困惑,使用太多的東西。我可以刪除我的評論以避免讓人困惑。 – Amala

+0

@Amala:不用擔心,我們會把它清理乾淨,然後轉移到更有趣的東西:) –

相關問題