--- /dev/null
+class TileUsers < ActiveRecord::Migration[5.1]
+ def up
+ add_column :users, :home_tile, :bigint
+ add_index :users, [:home_tile], :name => "users_home_idx"
+
+ if ENV["USE_DB_FUNCTIONS"]
+ User.update_all("home_tile = tile_for_point(cast(round(home_lat * #{GeoRecord::SCALE}) as integer), cast(round(home_lon * #{GeoRecord::SCALE}) as integer))")
+ else
+ User.all.each(&:save!)
+ end
+ end
+
+ def down
+ remove_index :users, :name => "users_home_idx"
+ remove_column :users, :home_tile
+ end
+end