を使用して空白の移行を生成したと仮定します
rails g migration PurgeOldUsersSchema
したがって、これは移行がどのように見えるかです
class PurgeOldUsersSchema < ActiveRecord::Migration
def change
cols = []
User.columns.collect(&:name).each do |col|
cols.push(col.to_sym)
end
cols = cols - [:id]
remove_column :users, cols
end
end
- [:id]
Railsでは主キーをドロップできないため、が必要であることに注意してください。この配列には、パージ操作後に保持する任意の列名を追加できます。
これにより、このテーブルへの参照がスキーマ内でそのまま保持されますが、とにかくデータが削除されるため、あまり関係ありません。:-)
アップデート
この解決策を試しましたが、remove_column :users, cols
うまくいきませんでした。そのため、次のように置き換える必要がありました。
cols.each { |col| remove_column :users, col }