apidae 1.3.0 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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