|
@@ -62,6 +62,21 @@ DB = connect ENV.fetch('DBTYPE').to_sym
|
|
# Define ORM models
|
|
# Define ORM models
|
|
class World < Sequel::Model(:World)
|
|
class World < Sequel::Model(:World)
|
|
def_column_alias(:randomnumber, :randomNumber) if DB.database_type == :mysql
|
|
def_column_alias(:randomnumber, :randomNumber) if DB.database_type == :mysql
|
|
|
|
+
|
|
|
|
+ def self.batch_update(worlds)
|
|
|
|
+ if DB.database_type == :mysql
|
|
|
|
+ worlds.map(&:save_changes)
|
|
|
|
+ else
|
|
|
|
+ ids = []
|
|
|
|
+ sql = String.new("UPDATE world SET randomnumber = CASE id ")
|
|
|
|
+ worlds.each do |world|
|
|
|
|
+ sql << "when #{world.id} then #{world.randomnumber} "
|
|
|
|
+ ids << world.id
|
|
|
|
+ end
|
|
|
|
+ sql << "ELSE randomnumber END WHERE id IN ( #{ids.join(',')})"
|
|
|
|
+ DB.run(sql)
|
|
|
|
+ end
|
|
|
|
+ end
|
|
end
|
|
end
|
|
|
|
|
|
class Fortune < Sequel::Model(:Fortune)
|
|
class Fortune < Sequel::Model(:Fortune)
|