2014-02-06 77 views
0

我有一個ruby-on-rails web應用程序,其中我錯誤地將一列添加到表中。刪除表中的壞列

我所做的是我的移民文件,我把:

add_column :my_table, :string, :col_name 

當我當然應該把:

add_column :my_table, :col_name, :string 

基本上,我切換列名和類型。

它確實添加了列 - 但沒有任何類型。如果我在控制檯中檢查表格,它會顯示一個名稱爲「字符串」的列,但不會列出任何類型。

現在,我無法刪除它。如果我做

remove_column: my_table, :string 

我得到一個零例外。

有什麼建議嗎?

由於提前, 添

+2

你做過'remove_column:my_table,:string'嗎?不知道它是否在你的文章中出現錯別字,或者你在做什麼 – usha

+2

@TimMitchell,你已經提出了21個問題,但迄今爲止還沒有接受過單個答案。這是否有理由?接受有助於解決您的問題的答案被認爲既禮貌又有幫助。 – zeantsoi

回答

1

找到的版本號和run the down migration

rake db:migrate:down VERSION=unique_stamp 

同時,還要確保你傳遞函數的自變量爲符號

remove_column :my_table, :string 
+0

這些都是很好的建議。 –

+0

然後你應該考慮[upvoting /接受它們是正確的](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – zeantsoi

+0

雖然我嘗試了所有這些,但我得到了完全相同的錯誤,這與我嘗試刪除列時最初得到的錯誤是一樣的... undefined方法'to_sym'爲nil:NilClass/usr/local/rvm/gems /[email protected]_manager2/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_definitions.rb:215:in'column' –

0

你可以嘗試回滾遷移

rake db:rollback 

見:http://guides.rubyonrails.org/migrations.html

+0

對不起人人 - 我原來的帖子中有一個錯字。事實上,我確實嘗試了正確的方法remove_column:my_table,:string我仍然得到錯誤,無論如何 –

0

你可以嘗試重命名:string列?

rename_column :my_table, :string, :col_name