2013-06-25 00:18:54 -04:00
|
|
|
require 'ipaddr'
|
|
|
|
|
|
|
|
class ChangeIpToInetInViews < ActiveRecord::Migration
|
|
|
|
def up
|
|
|
|
table = :views
|
|
|
|
add_column table, :ip_address, :inet
|
|
|
|
|
|
|
|
execute "UPDATE views SET ip_address = inet(
|
|
|
|
(ip >> 24 & 255) || '.' ||
|
|
|
|
(ip >> 16 & 255) || '.' ||
|
|
|
|
(ip >> 8 & 255) || '.' ||
|
|
|
|
(ip >> 0 & 255)
|
|
|
|
);"
|
|
|
|
|
2017-07-27 21:20:09 -04:00
|
|
|
change_column table, :ip_address, :inet, null: false
|
2013-06-25 00:18:54 -04:00
|
|
|
remove_column table, :ip
|
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
|
|
|
raise ActiveRecord::IrreversibleMigration
|
|
|
|
end
|
|
|
|
end
|