-require "migrate"
-
-class RemoveSegments < ActiveRecord::Migration
+class RemoveSegments < ActiveRecord::Migration[4.2]
def self.up
- have_segs = select_value("SELECT count(*) FROM current_segments").to_i != 0
+ have_segs = select_value("SELECT count(*) FROM current_segments").to_i.nonzero?
if have_segs
prefix = File.join Dir.tmpdir, "008_remove_segments.#{$PROCESS_ID}."
cmd = "db/migrate/008_remove_segments_helper"
src = "#{cmd}.cc"
if !File.exist?(cmd) || File.mtime(cmd) < File.mtime(src)
- system("c++ -O3 -Wall `mysql_config --cflags --libs` " +
+ system("c++ -O3 -Wall `mysql_config --cflags --libs` " \
"#{src} -o #{cmd}") || raise
end
- conn_opts = ActiveRecord::Base.connection
- .instance_eval { @connection_options }
+ conn_opts = ApplicationRecord.connection
+ .instance_eval { @connection_options }
args = conn_opts.map(&:to_s) + [prefix]
raise "#{cmd} failed" unless system cmd, *args
- tempfiles = %w(ways way_nodes way_tags relations relation_members relation_tags)
+ tempfiles = %w[ways way_nodes way_tags relations relation_members relation_tags]
.map { |base| prefix + base }
ways, way_nodes, way_tags,
relations, relation_members, relation_tags = tempfiles
# now get the data back
csvopts = "FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n'"
- tempfiles.each { |fn| File.chmod 0644, fn } if have_segs
+ tempfiles.each { |fn| File.chmod 0o644, fn } if have_segs
if have_segs
execute "LOAD DATA INFILE '#{ways}' INTO TABLE ways #{csvopts} (id, user_id, timestamp) SET visible = 1, version = 1"