apidae 1.3.0 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 11f5031e46f8bfa23ce228c242e023c4ebe10e0e
4
- data.tar.gz: '0083f65ff4cfbd3f53c5a13126ca940c4be696ae'
2
+ SHA256:
3
+ metadata.gz: 33abbdbe85b4e375a90d5e003724039d802e8c9e817865ab3607a44fca342897
4
+ data.tar.gz: d2596dfedc91f0306eeef4360c98066cbcebbc2da3587f1c4041a63843ab1948
5
5
  SHA512:
6
- metadata.gz: 0a6544dae89ca3cee7525b37433fc6941b5ae76d720f2adce045d3357fd65efca3150885b0cb9da8234a5324218448e57545897865a77896e1bdfe7a462ab31b
7
- data.tar.gz: 9c51ebdb6c1d9d671499fd60f086a8c43feb94a9c77d06108aa030b73d5bce00ad4fd5b58e0f5467d21a509bcc1594c2c59f6d19e4be2f61a78d76fc04037b3b
6
+ metadata.gz: 3d14fa60b837515f4b0596d49c38d1aa2f5e5136b4a6d5c918bfdad16a56b35c3cfe2c2edf79e2a54876abadd717190aa6b6dfa90dbc2fd14044739c99c5f79c
7
+ data.tar.gz: 4cd4ccbfc4132dc763b19b3518117b905b254c34824b501e35a805c75d58ac976a544f7515e9285ed80c0768b1acfca6cd53d9b2242dd971127e45fed5ad02c4
@@ -0,0 +1 @@
1
+ //= link_tree ../images
@@ -0,0 +1,4 @@
1
+ module Apidae
2
+ module ExtendableHelper
3
+ end
4
+ end
@@ -44,7 +44,7 @@ module Apidae
44
44
  'LUNDI' => MONDAY,
45
45
  'MARDI' => TUESDAY,
46
46
  'MERCREDI' => WEDNESDAY,
47
- 'JEUD' => THURSDAY,
47
+ 'JEUDI' => THURSDAY,
48
48
  'VENDREDI' => FRIDAY,
49
49
  'SAMEDI' => SATURDAY,
50
50
  'DIMANCHE' => SUNDAY
@@ -151,6 +151,7 @@ module Apidae
151
151
  name: localized_value(att, :nom, locale),
152
152
  url: att[:traductionFichiers][0][:url].gsub('http:', 'https:'),
153
153
  type: att[:type],
154
+ link: att[:link],
154
155
  description: localized_value(att, :legende, locale)
155
156
  }
156
157
  end
@@ -222,6 +223,8 @@ module Apidae
222
223
  loc_data[:latitude] = geoloc_details[:geoJson][:coordinates][1]
223
224
  loc_data[:longitude] = geoloc_details[:geoJson][:coordinates][0]
224
225
  end
226
+ loc_data[:map_reference] = geoloc_details[:reperePlan]
227
+ loc_data[:altitude] = geoloc_details[:altitude] if geoloc_details
225
228
  loc_data[:access] = node_value(geoloc_details, :complement) if geoloc_details
226
229
  loc_data[:environments] = location_hash[:environnements].map {|e| e[:id]} if location_hash[:environnements]
227
230
  end
@@ -236,6 +239,7 @@ module Apidae
236
239
  openings_desc: node_value(openings_hash, :periodeEnClair, *locales),
237
240
  openings_desc_mode: openings_hash[:periodeEnClairGenerationMode] == 'AUTOMATIQUE' ? MODE_AUTO : MODE_MANUAL,
238
241
  openings: build_openings(openings_hash, *locales),
242
+ all_year_long: openings_hash[:ouvertTouteLAnnee] == 'OUVERT_TOUTE_L_ANNEE' ? 'true' : 'false',
239
243
  time_periods: lists_ids(openings_hash[:indicationsPeriode]),
240
244
  openings_extra: lists_ids(openings_hash[:ouverturesComplementaires])
241
245
  }
@@ -264,7 +268,7 @@ module Apidae
264
268
  apidae_obj.apidae_subtype = node_id(data_hash, :rubrique) if apidae_obj.apidae_type == Obj::EQU
265
269
  apidae_obj.apidae_subtype = lists_ids(data_hash[:typesHebergement]).first if apidae_obj.apidae_type == Obj::SPA
266
270
  {
267
- categories: lists_ids(data_hash[:categories], data_hash[:typesDetailles], data_hash[:activiteCategories]),
271
+ categories: lists_ids(data_hash[:categories], data_hash[:typesDetailles], data_hash[:activiteCategories], data_hash[:typesHabitation]),
268
272
  themes: lists_ids(data_hash[:themes]),
269
273
  capacity: (data_hash[:capacite] || {})
270
274
  .merge(presta_hash ? {group_min: presta_hash[:tailleGroupeMin], group_max: presta_hash[:tailleGroupeMax],
@@ -275,7 +279,8 @@ module Apidae
275
279
  (node_id(data_hash, :typeLabel) ? [node_id(data_hash, :typeLabel)] : []),
276
280
  chains: lists_ids(data_hash[:chaines]) + nodes_ids(data_hash[:chaineEtLabel]),
277
281
  area: apidae_obj.apidae_type == Obj::DOS ? data_hash.except(:classification) : node_value(data_hash, :lieuDePratique),
278
- track: apidae_obj.apidae_type == Obj::EQU ? data_hash[:itineraire] : nil,
282
+ track: apidae_obj.apidae_type == Obj::EQU ? (data_hash[:itineraire] || {}).except(:passagesDelicats) : nil,
283
+ tricky_sections: apidae_obj.apidae_type == Obj::EQU ? node_value(data_hash[:itineraire], :passagesDelicats, *locales) : nil,
279
284
  products: lists_ids(data_hash[:typesProduit], data_hash[:aopAocIgps], data_hash[:specialites]),
280
285
  audience: lists_ids(prestations_hash[:typesClientele]),
281
286
  animals: {allowed: prestations_hash[:animauxAcceptes] == 'ACCEPTES', desc: node_value(prestations_hash, :descriptifAnimauxAcceptes, *locales),
@@ -317,13 +322,17 @@ module Apidae
317
322
  tags
318
323
  end
319
324
 
320
- def self.parse_booking(reservation_hash, *locales)
325
+ def self.parse_booking(reservation_hash, visits_hash, *locales)
326
+ booking_hash = {}
321
327
  if reservation_hash
322
- {
323
- booking_desc: node_value(reservation_hash, :complement, *locales),
324
- booking_entities: reservation_hash[:organismes]
325
- }
328
+ booking_hash[:booking_desc] = node_value(reservation_hash, :complement, *locales),
329
+ booking_hash[:booking_entities] = reservation_hash[:organismes]
326
330
  end
331
+ if visits_hash
332
+ booking_hash[:visits_allowed] = visits_hash[:visitable] == true
333
+ booking_hash[:visits_desc] = node_value(visits_hash, :complementVisite, *locales)
334
+ end
335
+ booking_hash
327
336
  end
328
337
 
329
338
  def self.parse_town(location_hash)
@@ -335,10 +344,15 @@ module Apidae
335
344
  end
336
345
  end
337
346
 
338
- def self.parse_entity_fields(information_hash, type_data_hash)
347
+ def self.parse_entity_fields(information_hash, type_data_hash, sp_hash)
348
+ entity_hash = {}
339
349
  if information_hash && information_hash[:structureGestion]
340
- {entity_id: information_hash[:structureGestion][:id], service_provider_id: node_id(type_data_hash, :prestataireActivites)}
350
+ entity_hash.merge!({entity_id: information_hash[:structureGestion][:id], service_provider_id: node_id(type_data_hash, :prestataireActivites)})
351
+ end
352
+ if sp_hash && sp_hash[:prestataireActivites]
353
+ entity_hash[:is_service_provider] = true
341
354
  end
355
+ entity_hash
342
356
  end
343
357
 
344
358
  def self.node_id(node, key)
@@ -30,16 +30,19 @@ module Apidae
30
30
  Town.import(zfile.read(TOWNS_FILE))
31
31
  logger.info "Completed #{Town.count} towns update"
32
32
  end
33
- zfile.each do |file|
33
+ ordered_files(zfile).each do |file|
34
+ puts "processing #{file.name}"
34
35
  if file.file? && file.name.end_with?('.json')
35
36
  logger.info "Processing file : #{file.name}"
36
37
  if file.name.include?(MODIFIED_DIR)
37
38
  add_or_update_objects(zfile.read(file.name), result, project.locales, project.versions)
38
- elsif file.name.include?(DELETED_FILE)
39
- delete_objects(zfile.read(file.name), result)
40
- elsif file.name.include?(SELECTIONS_FILE)
39
+ end
40
+ if file.name.include?(SELECTIONS_FILE)
41
41
  add_or_update_selections(project, zfile.read(file.name), result)
42
42
  end
43
+ if file.name.include?(DELETED_FILE)
44
+ delete_objects(zfile.read(file.name), result)
45
+ end
43
46
  end
44
47
  end
45
48
  create(result.except(:selections)
@@ -104,12 +107,16 @@ module Apidae
104
107
  end
105
108
  end
106
109
 
110
+ def self.ordered_files(zfile)
111
+ zfile.sort_by {|f| f.name.include?(MODIFIED_DIR) ? 0 : (f.name.include?(SELECTIONS_FILE) ? 1 : 2)}
112
+ end
113
+
107
114
  def self.delete_objects(deleted_json, result)
108
115
  deleted_ids = JSON.parse(deleted_json)
109
116
  deleted_ids.each do |id|
110
117
  obj = Obj.find_by_apidae_id(id)
111
118
  if obj
112
- obj.destroy!
119
+ obj.destroy! if obj.selections.empty?
113
120
  result[:deleted] += 1
114
121
  else
115
122
  logger.info "skipping object deletion : #{id}"
@@ -7,6 +7,7 @@ module Apidae
7
7
 
8
8
  attr_accessor :locale
9
9
  attr_accessor :obj_version
10
+ attr_accessor :obj_versions
10
11
 
11
12
  store_accessor :title_data, :title
12
13
  store_accessor :owner_data, :owner_name, :owner_id
@@ -14,15 +15,15 @@ module Apidae
14
15
  store_accessor :pictures_data, :pictures
15
16
  store_accessor :attachments_data, :attachments
16
17
  store_accessor :type_data, :categories, :themes, :capacity, :classification, :labels, :chains, :area, :track,
17
- :products, :audience, :animals, :animals_desc, :extra, :duration, :certifications, :business
18
- store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id
18
+ :tricky_sections, :products, :audience, :animals, :animals_desc, :extra, :duration, :certifications, :business
19
+ store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id, :is_service_provider
19
20
  store_accessor :contact_data, :telephone, :email, :website, :google, :facebook, :twitter, :yelp, :trip_advisor, :fax,
20
21
  :mobile_website, :shorty_url, :contacts
21
- store_accessor :location_data, :address, :place, :latitude, :longitude, :access, :territories, :environments
22
+ store_accessor :location_data, :address, :place, :latitude, :longitude, :access, :territories, :environments, :altitude, :map_reference
22
23
  store_accessor :openings_data, :openings_desc, :openings_desc_mode, :openings, :time_periods, :openings_extra
23
24
  store_accessor :rates_data, :rates_desc, :rates_desc_mode, :rates, :payment_methods, :includes, :excludes, :rates_extra
24
25
  store_accessor :service_data, :services, :equipments, :comfort, :activities, :challenged, :languages
25
- store_accessor :booking_data, :booking_desc, :booking_entities
26
+ store_accessor :booking_data, :booking_desc, :booking_entities, :visits_allowed, :visits_desc
26
27
  store_accessor :tags_data, :promo, :internal, :linked
27
28
  store_accessor :version_data, :versioned_fields
28
29
 
@@ -83,7 +84,7 @@ module Apidae
83
84
  COS => {node: :informationsCommerceEtService, subtype: :commerceEtServiceType},
84
85
  DEG => {node: :informationsDegustation, subtype: :degustationType},
85
86
  DOS => {node: :informationsDomaineSkiable, subtype: :domaineSkiableType},
86
- EQU => {node: :informationsEquipement, subtype: :equipementType},
87
+ EQU => {node: :informationsEquipement, subtype: :rubrique},
87
88
  FEM => {node: :informationsFeteEtManifestation, subtype: :feteEtManifestationType},
88
89
  HCO => {node: :informationsHebergementCollectif, subtype: :hebergementCollectifType},
89
90
  HLO => {node: :informationsHebergementLocatif, subtype: :hebergementLocatifType},
@@ -100,6 +101,7 @@ module Apidae
100
101
  after_initialize do
101
102
  @locale = DEFAULT_LOCALE
102
103
  @obj_version = DEFAULT_VERSION
104
+ @obj_versions = {}
103
105
  end
104
106
 
105
107
  def root_obj
@@ -111,11 +113,15 @@ module Apidae
111
113
  end
112
114
 
113
115
  def in_version(v)
114
- @cached_versions ||= {}
115
- if @cached_versions[v].nil?
116
- @cached_versions[v] = versions.where(version: v).first
116
+ if v == DEFAULT_VERSION && root_obj_id.nil?
117
+ @obj_version = DEFAULT_VERSION
118
+ self
119
+ else
120
+ if @obj_versions[v].nil?
121
+ @obj_versions[v] = versions.where(version: v).first
122
+ end
123
+ @obj_versions[v]
117
124
  end
118
- @cached_versions[v]
119
125
  end
120
126
 
121
127
  def in_locale(l)
@@ -164,6 +170,7 @@ module Apidae
164
170
  apidae_obj
165
171
  end
166
172
 
173
+ # Note : overrides existing fields (not a merge)
167
174
  def self.populate_fields(apidae_obj, object_data, locales)
168
175
  type_fields = TYPES_DATA[object_data[:type]]
169
176
  apidae_obj.last_update = DateTime.parse(object_data[:gestion][:dateModification]) unless object_data[:gestion].blank?
@@ -178,12 +185,12 @@ module Apidae
178
185
  apidae_obj.town = ApidaeDataParser.parse_town(object_data[:localisation])
179
186
  apidae_obj.openings_data = ApidaeDataParser.parse_openings(object_data[:ouverture], *locales)
180
187
  apidae_obj.rates_data = ApidaeDataParser.parse_rates(object_data[:descriptionTarif], *locales)
181
- apidae_obj.booking_data = ApidaeDataParser.parse_booking(object_data[:reservation], *locales)
188
+ apidae_obj.booking_data = ApidaeDataParser.parse_booking(object_data[:reservation], object_data[:visites], *locales)
182
189
  apidae_obj.type_data = ApidaeDataParser.parse_type_data(apidae_obj, object_data[type_fields[:node]], object_data[:prestations],
183
190
  object_data[:tourismeAffaires], *locales)
184
191
  apidae_obj.pictures_data = ApidaeDataParser.parse_pictures_data(object_data[:illustrations], *locales)
185
192
  apidae_obj.attachments_data = ApidaeDataParser.parse_attachments_data(object_data[:multimedias], *locales)
186
- apidae_obj.entity_data = ApidaeDataParser.parse_entity_fields(object_data[:informations], object_data[type_fields[:node]])
193
+ apidae_obj.entity_data = ApidaeDataParser.parse_entity_fields(object_data[:informations], object_data[type_fields[:node]], object_data[:informationsPrestataireActivites])
187
194
  apidae_obj.service_data = ApidaeDataParser.parse_service_data(object_data[:prestations], object_data[type_fields[:node]])
188
195
  apidae_obj.tags_data = ApidaeDataParser.parse_tags_data(object_data[:presentation], object_data[:criteresInternes], object_data[:liens])
189
196
  apidae_obj.meta_data = object_data[:metadonnees]
@@ -69,7 +69,7 @@ module Apidae
69
69
  key = cache_key(:agenda, from, to)
70
70
  res = $apidae_cache.read(key)
71
71
  unless res
72
- query_args = build_args(AGENDA_ENDPOINT, {selection_ids: [apidae_id], from: from, to: to})
72
+ query_args = build_args(AGENDA_ENDPOINT, {selection_ids: [apidae_id], from: from, to: to, count: 200})
73
73
  res = query_api(query_args, true)
74
74
  $apidae_cache.write(key, res)
75
75
  end
@@ -92,6 +92,7 @@ module Apidae
92
92
  query_api(query_args, true, false)
93
93
  end
94
94
 
95
+ # Note : WARNING - updated obj will only contain the provided fields
95
96
  def add_or_refresh_obj(apidae_obj_id, fields = ["@all"])
96
97
  if valid_api?
97
98
  res = api_object(apidae_obj_id, fields)
@@ -102,6 +103,7 @@ module Apidae
102
103
  end
103
104
  end
104
105
 
106
+ # Note : WARNING - updated objs will only contain the provided fields
105
107
  def add_or_refresh_objs(fields = ["@all"])
106
108
  if valid_api?
107
109
  res = api_objects({fields: fields})
@@ -140,14 +142,15 @@ module Apidae
140
142
 
141
143
  if all_results
142
144
  loops = 0
145
+ max_loops = only_ids ? 50 : MAX_LOOPS
143
146
  query_args[:first] = 0
144
- query_args[:count] = MAX_COUNT
147
+ query_args[:count] ||= MAX_COUNT
145
148
  query_args[:locales] ||= apidae_project && !apidae_project.locales.blank? ? apidae_project.locales : [DEFAULT_LOCALE]
146
149
  response = JSON.parse get_response(query_args), symbolize_names: false
147
150
  total = response['numFound']
148
151
  query_result[:results] = (only_ids ? response['objetTouristiqueIds'] : response['objetsTouristiques']) || {}
149
152
 
150
- while total > results_count(query_result) && loops < MAX_LOOPS
153
+ while total > results_count(query_result) && loops < max_loops
151
154
  loops += 1
152
155
  query_args[:first] += MAX_COUNT
153
156
  response = JSON.parse get_response(query_args), symbolize_names: false
@@ -0,0 +1,18 @@
1
+ module Apidae
2
+ class Territory < ApplicationRecord
3
+ def self.import(territories_json)
4
+ territories_hashes = JSON.parse(territories_json, symbolize_names: true)
5
+ territories_hashes.each do |t_data|
6
+ t = Territory.find_or_initialize_by(apidae_id: t_data[:id])
7
+ t.name = t_data.dig(:nom, :libelleFr)
8
+ t.apidae_type = t_data.dig(:territoireType, :id)
9
+ t.save!
10
+ end
11
+ end
12
+
13
+ def self.import_file(json_file)
14
+ territories_json = File.read(json_file)
15
+ import(territories_json)
16
+ end
17
+ end
18
+ end
@@ -8,9 +8,10 @@ module Apidae
8
8
  LOCALE_ZH = 'zh'
9
9
  LOCALE_ES = 'es'
10
10
  LOCALE_PT_BR = 'pt-BR'
11
+ LOCALE_JP = 'jp'
11
12
 
12
13
  DEFAULT_LOCALE = LOCALE_FR
13
- ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR]
14
+ ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR, LOCALE_JP]
14
15
 
15
16
  STANDARD_VERSION = 'STANDARD'
16
17
  WINTER_VERSION = 'HIVER'
@@ -26,6 +27,9 @@ module Apidae
26
27
 
27
28
  LOCALIZED_FIELDS = [:title, :short_desc, :long_desc, :pictures, :attachments, :openings_desc, :rates_desc,
28
29
  :includes, :excludes, :extra, :booking_desc]
29
- ALL_FIELDS = LOCALIZED_FIELDS + [:theme_desc, :private_desc, :capacity, :telephone, :email, :website, :services,
30
- :equipments, :comfort, :activities, :promo, :internal, :linked]
30
+ ALL_FIELDS = LOCALIZED_FIELDS + [:theme_desc, :private_desc, :capacity, :telephone, :email, :website,
31
+ :google, :facebook, :twitter, :yelp, :trip_advisor, :fax, :mobile_website, :shorty_url,
32
+ :openings, :openings_extra, :rates, :services, :payment_methods, :categories, :themes,
33
+ :labels, :chains, :classification, :challenged, :environments, :languages, :products,
34
+ :animals, :equipments, :comfort, :activities, :promo, :internal, :linked]
31
35
  end
@@ -41,6 +41,7 @@ fr:
41
41
  ru: Russe
42
42
  zh: Chinois
43
43
  'pt-BR': Brésilien
44
+ jp: Japonais
44
45
  versions:
45
46
  STANDARD: Standard
46
47
  HIVER: Hiver
@@ -0,0 +1,10 @@
1
+ class CreateApidaeTerritories < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :apidae_territories do |t|
4
+ t.integer :apidae_id
5
+ t.string :name
6
+ end
7
+
8
+ add_index :apidae_territories, :apidae_id
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class AddApidaeTypeToApidaeTerritories < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :apidae_territories, :apidae_type, :integer
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.5"
3
3
  end
@@ -0,0 +1,15 @@
1
+ [
2
+ {
3
+ "id": 49063,
4
+ "libelle": {
5
+ "libelleFr": "Sélection 2"
6
+ },
7
+ "nom": "Sélection 2",
8
+ "objetsTouristiques": [
9
+ {
10
+ "type": "STRUCTURE",
11
+ "id": 503
12
+ }
13
+ ]
14
+ }
15
+ ]
@@ -65,3 +65,286 @@ Migrating to AddLocalesDataToApidaeProjects (20190123214635)
65
65
   (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
66
66
  Apidae::Obj Load (26.8ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
67
67
  Apidae::Obj Load (2.4ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
68
+ Apidae::Obj Load (0.8ms) SELECT "apidae_objs".* FROM "apidae_objs" ORDER BY "apidae_objs"."id" ASC LIMIT $1 [["LIMIT", 1]]
69
+  (3.4ms) SELECT COUNT(*) FROM "apidae_objs"
70
+  (20.0ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
71
+  (40.8ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
72
+  (0.9ms) SELECT pg_try_advisory_lock(6140174353533887940)
73
+  (0.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
74
+ Migrating to CreateApidaeSelections (20170512212941)
75
+  (0.1ms) BEGIN
76
+  (40.3ms) CREATE TABLE "apidae_selections" ("id" serial NOT NULL PRIMARY KEY, "label" character varying, "reference" character varying, "apidae_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
77
+ ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512212941"]]
78
+  (0.4ms) COMMIT
79
+ Migrating to CreateApidaeObjects (20170512214641)
80
+  (40.8ms) BEGIN
81
+  (6.7ms) CREATE TABLE "apidae_objects" ("id" serial NOT NULL PRIMARY KEY, "address" character varying, "apidae_id" integer, "apidae_type" character varying, "apidae_subtype" character varying, "title" character varying, "short_desc" text, "contact" text, "long_desc" text, "type_data" text, "latitude" float, "longitude" float, "openings" text, "rates" text, "reservation" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
82
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512214641"]]
83
+  (0.4ms) COMMIT
84
+ Migrating to CreateApidaeObjectsApidaeSelections (20170512221525)
85
+  (39.6ms) BEGIN
86
+  (4.7ms) CREATE TABLE "apidae_objects_apidae_selections" ("id" serial NOT NULL PRIMARY KEY, "object_id" integer, "selection_id" integer)
87
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512221525"]]
88
+  (0.3ms) COMMIT
89
+ Migrating to CreateApidaeTowns (20170513114002)
90
+  (40.7ms) BEGIN
91
+  (6.2ms) CREATE TABLE "apidae_towns" ("id" serial NOT NULL PRIMARY KEY, "country" character varying, "apidae_id" integer, "insee_code" character varying, "name" character varying, "postal_code" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
92
+  (1.0ms) CREATE UNIQUE INDEX "index_apidae_towns_on_insee_code" ON "apidae_towns" ("insee_code")
93
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513114002"]]
94
+  (0.4ms) COMMIT
95
+ Migrating to AddTownInseeCodeToObjects (20170513114409)
96
+  (40.5ms) BEGIN
97
+  (4.3ms) ALTER TABLE "apidae_objects" ADD "town_insee_code" character varying
98
+ ActiveRecord::SchemaMigration Create (0.9ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513114409"]]
99
+  (0.4ms) COMMIT
100
+ Migrating to AddPicturesDataToObjects (20170513115401)
101
+  (0.2ms) BEGIN
102
+  (0.3ms) ALTER TABLE "apidae_objects" ADD "pictures_data" text
103
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513115401"]]
104
+  (27.1ms) COMMIT
105
+ Migrating to CreateApidaeAttachedFiles (20170513121215)
106
+  (0.3ms) BEGIN
107
+  (24.8ms) CREATE TABLE "apidae_attached_files" ("id" serial NOT NULL PRIMARY KEY, "name" character varying, "credits" character varying, "description" text, "apidae_object_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
108
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513121215"]]
109
+  (0.4ms) COMMIT
110
+ Migrating to RenameObjectsSelectionsTable (20170513205932)
111
+  (33.6ms) BEGIN
112
+  (0.5ms) ALTER TABLE "apidae_objects_apidae_selections" RENAME TO "apidae_objects_selections"
113
+  (0.2ms) ALTER INDEX "apidae_objects_apidae_selections_pkey" RENAME TO "apidae_objects_selections_pkey"
114
+  (0.2ms) ALTER TABLE "public"."apidae_objects_apidae_selections_id_seq" RENAME TO "apidae_objects_selections_id_seq"
115
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513205932"]]
116
+  (0.2ms) COMMIT
117
+ Migrating to AddEntityDataToObjects (20170720161134)
118
+  (0.1ms) BEGIN
119
+  (0.3ms) ALTER TABLE "apidae_objects" ADD "entity_data" text
120
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170720161134"]]
121
+  (40.7ms) COMMIT
122
+ Migrating to CreateApidaeFileImports (20170730102424)
123
+  (0.3ms) BEGIN
124
+  (47.6ms) CREATE TABLE "apidae_file_imports" ("id" serial NOT NULL PRIMARY KEY, "status" character varying, "remote_file" character varying, "created" integer, "updated" integer, "deleted" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
125
+ ActiveRecord::SchemaMigration Create (0.7ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170730102424"]]
126
+  (1.2ms) COMMIT
127
+ Migrating to CreateApidaeExports (20171025075304)
128
+  (40.4ms) BEGIN
129
+  (5.7ms) CREATE TABLE "apidae_exports" ("id" serial NOT NULL PRIMARY KEY, "status" character varying, "remote_status" character varying, "oneshot" boolean, "reset" boolean, "file_url" character varying, "confirm_url" character varying, "project_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
130
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20171025075304"]]
131
+  (0.3ms) COMMIT
132
+ Migrating to CreateApidaeSelectionObjects (20180217222410)
133
+  (40.4ms) BEGIN
134
+  (4.2ms) CREATE TABLE "apidae_selection_objects" ("id" bigserial primary key, "apidae_selection_id" integer, "apidae_object_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
135
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180217222410"]]
136
+  (0.4ms) COMMIT
137
+ Migrating to ChangeTextColumnsToJson (20180218172704)
138
+  (32.6ms) BEGIN
139
+  (6.8ms) ALTER TABLE "apidae_objects" ALTER COLUMN "pictures_data" TYPE jsonb USING pictures_data::text::jsonb
140
+  (3.3ms) ALTER TABLE "apidae_objects" ALTER COLUMN "type_data" TYPE jsonb USING type_data::text::jsonb
141
+  (3.3ms) ALTER TABLE "apidae_objects" ALTER COLUMN "entity_data" TYPE jsonb USING entity_data::text::jsonb
142
+  (3.0ms) ALTER TABLE "apidae_objects" ALTER COLUMN "contact" TYPE jsonb USING contact::text::jsonb
143
+  (2.6ms) ALTER TABLE "apidae_objects" ALTER COLUMN "address" TYPE jsonb USING address::text::jsonb
144
+  (2.8ms) ALTER TABLE "apidae_objects" ALTER COLUMN "openings" TYPE jsonb USING openings::text::jsonb
145
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180218172704"]]
146
+  (3.7ms) COMMIT
147
+ Migrating to AddServiceDataToApidaeObjects (20180218231319)
148
+  (0.5ms) BEGIN
149
+  (0.5ms) ALTER TABLE "apidae_objects" ADD "service_data" jsonb
150
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180218231319"]]
151
+  (40.8ms) COMMIT
152
+ Migrating to AddRatesDataToApidaeObjects (20180222104915)
153
+  (0.2ms) BEGIN
154
+  (0.4ms) ALTER TABLE "apidae_objects" ADD "rates_data" jsonb
155
+  (41.4ms) ALTER TABLE "apidae_objects" DROP COLUMN "rates"
156
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180222104915"]]
157
+  (0.4ms) COMMIT
158
+ Migrating to RenameOpeningsToOpeningsData (20180222105302)
159
+  (0.2ms) BEGIN
160
+  (0.3ms) ALTER TABLE "apidae_objects" RENAME COLUMN "openings" TO "openings_data"
161
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180222105302"]]
162
+  (40.6ms) COMMIT
163
+ Migrating to AddAttachmentsDataToApidaeObjects (20180307164936)
164
+  (0.2ms) BEGIN
165
+  (0.5ms) ALTER TABLE "apidae_objects" ADD "attachments_data" jsonb
166
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180307164936"]]
167
+  (37.6ms) COMMIT
168
+ Migrating to CreateApidaeReferences (20180307170349)
169
+  (0.2ms) BEGIN
170
+  (85.3ms) CREATE TABLE "apidae_references" ("id" bigserial primary key, "apidae_id" integer, "apidae_type" character varying, "label_data" jsonb, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
171
+  (41.1ms) CREATE UNIQUE INDEX "index_apidae_references_on_apidae_id" ON "apidae_references" ("apidae_id")
172
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180307170349"]]
173
+  (41.1ms) COMMIT
174
+ Migrating to AddTagsDataToApidaeObjects (20180314093512)
175
+  (81.8ms) BEGIN
176
+  (0.3ms) ALTER TABLE "apidae_objects" ADD "tags_data" jsonb
177
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180314093512"]]
178
+  (40.8ms) COMMIT
179
+ Migrating to AddMetaDataToApidaeObjects (20180314132631)
180
+  (0.2ms) BEGIN
181
+  (0.3ms) ALTER TABLE "apidae_objects" ADD "meta_data" jsonb
182
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180314132631"]]
183
+  (41.0ms) COMMIT
184
+ Migrating to RemoveApidaeIdUnicity (20180319143954)
185
+  (0.1ms) BEGIN
186
+  (0.5ms) DROP INDEX "index_apidae_references_on_apidae_id"
187
+  (1.1ms) CREATE INDEX "index_apidae_references_on_apidae_id" ON "apidae_references" ("apidae_id")
188
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180319143954"]]
189
+  (0.5ms) COMMIT
190
+ Migrating to AddLocationDataToApidaeObjects (20180417164604)
191
+  (0.3ms) BEGIN
192
+  (0.3ms) ALTER TABLE "apidae_objects" ADD "location_data" jsonb
193
+ ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417164604"]]
194
+  (23.5ms) COMMIT
195
+ Migrating to RemoveAddressFromApidaeObjects (20180417165744)
196
+  (0.2ms) BEGIN
197
+  (0.5ms) ALTER TABLE "apidae_objects" DROP COLUMN "address"
198
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417165744"]]
199
+  (23.3ms) COMMIT
200
+ Migrating to RemoveLatLngFromApidaeObjects (20180417171344)
201
+  (0.2ms) BEGIN
202
+  (0.6ms) ALTER TABLE "apidae_objects" DROP COLUMN "latitude"
203
+  (0.7ms) ALTER TABLE "apidae_objects" DROP COLUMN "longitude"
204
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417171344"]]
205
+  (20.9ms) COMMIT
206
+ Migrating to AddDescriptionDataToApidaeObjects (20180418141248)
207
+  (0.2ms) BEGIN
208
+  (0.4ms) ALTER TABLE "apidae_objects" ADD "description_data" jsonb
209
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180418141248"]]
210
+  (22.7ms) COMMIT
211
+ Migrating to RemoveDescColumnsFromApidaeObjects (20180418141305)
212
+  (0.2ms) BEGIN
213
+  (0.4ms) ALTER TABLE "apidae_objects" DROP COLUMN "short_desc"
214
+  (0.2ms) ALTER TABLE "apidae_objects" DROP COLUMN "long_desc"
215
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180418141305"]]
216
+  (41.3ms) COMMIT
217
+ Migrating to AddMetaDataToApidaeReferences (20180424141656)
218
+  (0.2ms) BEGIN
219
+  (0.4ms) ALTER TABLE "apidae_references" ADD "meta_data" jsonb
220
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180424141656"]]
221
+  (40.2ms) COMMIT
222
+ Migrating to RemoveInseeCodeUnicity (20180519170210)
223
+  (0.2ms) BEGIN
224
+  (0.3ms) DROP INDEX "index_apidae_towns_on_insee_code"
225
+  (41.9ms) CREATE INDEX "index_apidae_towns_on_insee_code" ON "apidae_towns" ("insee_code")
226
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180519170210"]]
227
+  (2.8ms) COMMIT
228
+ Migrating to DestroyAttachedFiles (20180521211735)
229
+  (0.1ms) BEGIN
230
+  (37.9ms) DROP TABLE "apidae_attached_files"
231
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180521211735"]]
232
+  (1.2ms) COMMIT
233
+ Migrating to RenameObjectsToObj (20180625050400)
234
+  (0.2ms) BEGIN
235
+  (0.3ms) ALTER TABLE "apidae_objects" RENAME TO "apidae_objs"
236
+  (0.2ms) ALTER INDEX "apidae_objects_pkey" RENAME TO "apidae_objs_pkey"
237
+  (0.2ms) ALTER TABLE "public"."apidae_objects_id_seq" RENAME TO "apidae_objs_id_seq"
238
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180625050400"]]
239
+  (40.7ms) COMMIT
240
+ Migrating to AddProjectIdToSelections (20181024072424)
241
+  (0.3ms) BEGIN
242
+  (0.4ms) ALTER TABLE "apidae_selections" ADD "apidae_project_id" integer
243
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20181024072424"]]
244
+  (34.0ms) COMMIT
245
+ Migrating to CreateApidaeProjects (20181024072843)
246
+  (0.3ms) BEGIN
247
+  (43.8ms) CREATE TABLE "apidae_projects" ("id" bigserial primary key, "name" character varying, "apidae_id" integer, "api_key" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
248
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20181024072843"]]
249
+  (0.5ms) COMMIT
250
+ Migrating to AddApidaeIdToApidaeFileImports (20190111162443)
251
+  (40.4ms) BEGIN
252
+  (0.3ms) ALTER TABLE "apidae_file_imports" ADD "apidae_id" integer
253
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190111162443"]]
254
+  (1.9ms) COMMIT
255
+ Migrating to UpgradeApidaeObjsTitleDataType (20190123142628)
256
+  (0.1ms) BEGIN
257
+  (0.3ms) ALTER TABLE "apidae_objs" ADD "title_data" jsonb
258
+ Apidae::Obj Load (0.4ms) SELECT "apidae_objs".* FROM "apidae_objs"
259
+  (0.3ms) ALTER TABLE "apidae_objs" DROP COLUMN "title"
260
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123142628"]]
261
+  (40.4ms) COMMIT
262
+ Migrating to AddBookingDataToApidaeObjs (20190123160046)
263
+  (0.2ms) BEGIN
264
+  (0.3ms) ALTER TABLE "apidae_objs" ADD "booking_data" jsonb
265
+ Apidae::Obj Load (0.3ms) SELECT "apidae_objs".* FROM "apidae_objs"
266
+  (0.3ms) ALTER TABLE "apidae_objs" DROP COLUMN "reservation"
267
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123160046"]]
268
+  (40.1ms) COMMIT
269
+ Migrating to AddLocalesDataToApidaeProjects (20190123214635)
270
+  (0.2ms) BEGIN
271
+  (0.4ms) ALTER TABLE "apidae_projects" ADD "locales_data" character varying
272
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123214635"]]
273
+  (22.4ms) COMMIT
274
+ Migrating to AddVersionToApidaeObjs (20190124162543)
275
+  (0.2ms) BEGIN
276
+  (0.5ms) ALTER TABLE "apidae_objs" ADD "version" character varying
277
+  (0.2ms) ALTER TABLE "apidae_objs" ADD "root_obj_id" integer
278
+  (0.9ms) ALTER TABLE "apidae_projects" ADD "versions_data" character varying
279
+ Apidae::Obj Update All (0.5ms) UPDATE "apidae_objs" SET "version" = 'STANDARD' WHERE "apidae_objs"."root_obj_id" IS NULL
280
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190124162543"]]
281
+  (40.7ms) COMMIT
282
+ Migrating to MigrateLocalizedApidaeObjFields (20190127210921)
283
+  (0.3ms) BEGIN
284
+ Apidae::Obj Load (0.6ms) SELECT "apidae_objs".* FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL
285
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190127210921"]]
286
+  (39.7ms) COMMIT
287
+ Migrating to MigrateLocalizedApidaeReferences (20190127213602)
288
+  (0.2ms) BEGIN
289
+ Apidae::Reference Load (0.6ms) SELECT "apidae_references".* FROM "apidae_references"
290
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190127213602"]]
291
+  (40.5ms) COMMIT
292
+ Migrating to MigrateDescApidaeObjFields (20190304142446)
293
+  (0.4ms) BEGIN
294
+ Apidae::Obj Load (0.5ms) SELECT "apidae_objs"."id", "root_obj_id", "apidae_objs"."description_data" FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL
295
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190304142446"]]
296
+  (20.7ms) COMMIT
297
+ Migrating to AddIndexOnApidaeObj (20190418133435)
298
+  (0.4ms) BEGIN
299
+  (20.4ms) CREATE INDEX "apidae_objs_apidae_id" ON "apidae_objs" ("apidae_id")
300
+  (1.0ms) CREATE INDEX "apidae_objs_root_obj_id" ON "apidae_objs" ("root_obj_id")
301
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190418133435"]]
302
+  (0.4ms) COMMIT
303
+ Migrating to AddDescriptionToApidaeTowns (20190517153215)
304
+  (0.1ms) BEGIN
305
+  (0.6ms) ALTER TABLE "apidae_towns" ADD "description" character varying
306
+ ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190517153215"]]
307
+  (21.5ms) COMMIT
308
+ Migrating to AddLastUpdateToApidaeOjbs (20200111214145)
309
+  (0.2ms) BEGIN
310
+  (0.4ms) ALTER TABLE "apidae_objs" ADD "last_update" timestamp
311
+ ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200111214145"]]
312
+  (21.4ms) COMMIT
313
+ Migrating to AddOwnerDataToApidaeObjs (20200111214631)
314
+  (0.3ms) BEGIN
315
+  (0.4ms) ALTER TABLE "apidae_objs" ADD "owner_data" jsonb
316
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200111214631"]]
317
+  (23.2ms) COMMIT
318
+ Migrating to AddApidaeTypeIndexOnReferences (20200224130804)
319
+  (0.2ms) BEGIN
320
+  (23.3ms) CREATE INDEX "index_apidae_references_on_apidae_type" ON "apidae_references" ("apidae_type")
321
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200224130804"]]
322
+  (0.4ms) COMMIT
323
+ Migrating to AddTownInseeCodeIndexToObjs (20200224145802)
324
+  (0.1ms) BEGIN
325
+  (24.5ms) CREATE INDEX "index_apidae_objs_on_town_insee_code" ON "apidae_objs" ("town_insee_code")
326
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200224145802"]]
327
+  (0.4ms) COMMIT
328
+ Migrating to AddVersionDataToApidaeObjs (20200312150008)
329
+  (0.2ms) BEGIN
330
+  (0.4ms) ALTER TABLE "apidae_objs" ADD "version_data" jsonb
331
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200312150008"]]
332
+  (24.0ms) COMMIT
333
+ Migrating to AddVersionIndexOnApidaeObjs (20200312150904)
334
+  (0.7ms) BEGIN
335
+  (21.8ms) CREATE UNIQUE INDEX "index_apidae_objs_on_root_obj_id_and_version" ON "apidae_objs" ("root_obj_id", "version")
336
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200312150904"]]
337
+  (0.3ms) COMMIT
338
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
339
+  (0.2ms) BEGIN
340
+ ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2021-07-08 09:47:54.615597"], ["updated_at", "2021-07-08 09:47:54.615597"]]
341
+  (0.3ms) COMMIT
342
+  (0.3ms) SELECT pg_advisory_unlock(6140174353533887940)
343
+  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
344
+  (0.2ms) SELECT pg_try_advisory_lock(6140174353533887940)
345
+  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
346
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
347
+  (0.2ms) BEGIN
348
+  (0.1ms) COMMIT
349
+  (0.2ms) SELECT pg_advisory_unlock(6140174353533887940)
350
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC