Sha256: 043bb090192d3d494dbb12e541ed0cc7465bd4731ac4eb7923507bf54446a038

Contents?: true

Size: 842 Bytes

Versions: 9

Compression:

Stored size: 842 Bytes

Contents

connection = ApplicationRecord.connection
state_inserts = []

state_values = -> do
  Spree::Country.where(states_required: true).each do |country|
    carmen_country = Carmen::Country.named(country.name)
    next if !carmen_country
    carmen_country.subregions.each do |subregion|
      name       = connection.quote subregion.name
      abbr       = connection.quote subregion.code
      country_id = connection.quote country.id

      state_inserts << [name, abbr, country_id].join(", ")
    end
  end

  state_inserts.map { |x| "(#{x})" }
end

columns = ["name", "abbr", "country_id"].map do |column|
  connection.quote_column_name column
end.join(', ')

state_values.call.each_slice(500) do |state_values_batch|
  connection.execute <<-SQL
    INSERT INTO spree_states (#{columns})
    VALUES #{state_values_batch.join(", ")};
  SQL
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree_core-3.4.6 db/default/spree/states.rb
spree_core-3.4.5 db/default/spree/states.rb
spree_core-3.4.4 db/default/spree/states.rb
spree_core-3.4.3 db/default/spree/states.rb
spree_core-3.4.2 db/default/spree/states.rb
spree_core-3.4.1 db/default/spree/states.rb
spree_core-3.4.0 db/default/spree/states.rb
spree_core-3.4.0.rc2 db/default/spree/states.rb
spree_core-3.4.0.rc1 db/default/spree/states.rb