使用迁移从表中删除现有列的命令是什么?
我要删除的列是:country:string
从表格中sample_apps
答案 0 :(得分:58)
要删除包含迁移的列:
rails g migration Remove..From.. col1:type col2:type col3:type
在你的情况下:
rails g migration RemoveCountryFromSampleApps country:string
这将在Rails 5.0中生成以下迁移 :
class RemoveCountryFromSampleApps < ActiveRecord::Migration[5.0]
def change
remove_column :sample_apps, :country, :string
end
end
答案 1 :(得分:2)
创建迁移文件:
$ rails generate migration RemoveCountryFromSampleApps country:string
在生成的迁移文件中:
class RemoveCountryFromSampleApps < ActiveRecord::Migration
def change
remove_column :sample_apps, :country, :string
end
end
然后运行:
rake db:migrate
答案 2 :(得分:1)
如果想要删除索引,也可以使用迁移:
rails g migration remove_post_id_from_comments post_id:integer:index
迁移文件:
class RemovePostIdFromComments < ActiveRecord::Migration
def change
remove_index :comments, :post_id
remove_column :comments, :post_id, :integer
end
end
然后运行:rake db:migrate
答案 3 :(得分:1)
要从表(sample_case)中删除列(此处为国家)
rails generate migration RemoveCountryfromSampleCase country:string
以上命令应生成文件 YYYYMMDDHHMMSS_remove_countryfrom_sample_case.rb 。在 db / migrate 文件夹下
class RemoveCountryFromSampleCase < ActiveRecord::Migration[5.0]
def change
remove_column :sample_case, :country, :string
end
end
就我而言(我做了两列以上)仅出现
class RemoveCountryFromSampleCase < ActiveRecord::Migration[5.0]
def change
end
end
remove_column 行不存在,所以我手动添加了它,然后触发了命令
rails db:migrate
对我有用。
参考文献https://stackoverflow.com/a/2963582 和 Ruby Active Record迁移指南 https://edgeguides.rubyonrails.org/active_record_migrations.html
答案 4 :(得分:1)
您需要指定类型吗?
为什么这里的样本不只是node -r @babel/register executeMyFileWithESModules.js
或remove_column :sample_apps, :country
?似乎可以正常工作,并消除了出现错误的可能性(文本或字符串)。