Advertisement
Guest User

Untitled

a guest
May 6th, 2018
495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.36 KB | None | 0 0
  1. require 'json'
  2.  
  3. puts 'Cleaning database...'
  4. Ad.destroy_all
  5. AdAddress.destroy_all
  6. AdCopy.destroy_all
  7. Beach.destroy_all
  8. Category.destroy_all
  9. Subcategory.destroy_all
  10. Relationship.destroy_all
  11. User.destroy_all
  12. user = User.first_or_initialize(email: "admin@admin.com", password: "admin1")
  13. user.save
  14.  
  15. filepath = 'db/qqx486.json'
  16.  
  17. serialized_ads = File.read(filepath)
  18.  
  19. parsed_json = JSON.parse(serialized_ads)
  20.  
  21. json_ads = parsed_json.find { |table| table['name'] == 'anuncios' }
  22. ads = {}
  23.  
  24. puts 'Creating ads...'
  25.  
  26. json_ads['data'].each do |ad|
  27. ads[ad['id']] = Ad.create!(
  28. user_id: user.id,
  29. company: ad["empresa"],
  30. principle_tel: ad["tel"],
  31. principle_mob: ad["movil_principal"],
  32. principle_fax: ad["fax_principal"],
  33. principle_email: ad["email_principal"],
  34. website: ad["web"],
  35. facebook: ad["facebook"],
  36. twitter: ad["twitter"],
  37. instagram: ad["instagram"],
  38. timetable_summer: ad["horario_v_principal"],
  39. timetable_winter: ad["horario_i_principal"],
  40. subtitle: ad["subtitulo"],
  41. address: ad["direccion_principal"],
  42. city: ad["poblacion_principal"],
  43. island: ad["isla"],
  44. active: ad["activo"],
  45. ad_size: ad["tam_anuncio"]
  46. )
  47. end
  48.  
  49. puts 'Creating categories...'
  50.  
  51. json_categories = parsed_json.find { |table| table['name'] == 'categorias' }
  52. categories = {}
  53.  
  54. json_categories['data'].each do |category|
  55. categories[category['id']] = Category.create!(
  56. user_id: user.id,
  57. name: category["nombre"]
  58. )
  59. end
  60.  
  61. puts 'Creating subcategories...'
  62.  
  63. json_subcategories = parsed_json.find { |table| table['name'] == 'rel_anuncio' }
  64. subcategories = {}
  65.  
  66. json_subcategories['data'].each do |subcategory|
  67. subcategories[subcategory['id']] = Subcategory.create!(
  68. category: categories[subcategory['id_categoria']],
  69. name: subcategory["nombre"]
  70. )
  71. end
  72.  
  73. puts 'Creating relationships...'
  74.  
  75. json_relationships = parsed_json.find { |table| table['name'] == 'rel_anuncio' }
  76.  
  77. json_relationships['data'].each do |relationship|
  78. Relationship.create!(
  79. category: categories[relationship["id_categoria"]],
  80. ad: ads[relationship["id_anuncio"]],
  81. subcategory: subcategories[relationship["id_subcategoria"]]
  82. )
  83. end
  84.  
  85. puts 'Finished!'
  86.  
  87. ActiveRecord::RecordInvalid: Validation failed: Subcategory must exist
  88. /Users/owenmoss/code/OKMantis/isla_blanca/db/seeds.rb:78:in `block in <top (required)>'
  89. /Users/owenmoss/code/OKMantis/isla_blanca/db/seeds.rb:77:in `each'
  90. /Users/owenmoss/code/OKMantis/isla_blanca/db/seeds.rb:77:in `<top (required)>'
  91. /Users/owenmoss/code/OKMantis/isla_blanca/bin/rails:9:in `require'
  92. /Users/owenmoss/code/OKMantis/isla_blanca/bin/rails:9:in `<top (required)>'
  93. /Users/owenmoss/code/OKMantis/isla_blanca/bin/spring:15:in `<top (required)>'
  94. ./bin/rails:3:in `load'
  95. ./bin/rails:3:in `<main>'
  96. Tasks: TOP => db:seed
  97. (See full trace by running task with --trace)
  98.  
  99. class Relationship < ApplicationRecord
  100. belongs_to :ad, optional: true
  101. belongs_to :category, optional: true
  102. belongs_to :subcategory, optional: true
  103. end
  104.  
  105. class Ad < ApplicationRecord
  106. has_many :ad_copies
  107. has_many :ad_addresses
  108. has_many :categories, through: :relationships
  109. has_many :relationships
  110. belongs_to :user
  111.  
  112. end
  113.  
  114. class Category < ApplicationRecord
  115. has_many :subcategories
  116. has_many :ads, through: :relationships
  117. has_many :relationships
  118. belongs_to :user
  119. end
  120.  
  121. class Subcategory < ApplicationRecord
  122. has_many :ads, through: :relationships
  123. has_many :relationships
  124. belongs_to :category
  125. end
  126.  
  127. [
  128. {"type":"header","version":"4.7.9","comment":"Export to JSON plugin for PHPMyAdmin"},
  129. {"type":"database","name":"qqx486"},
  130. {"type":"table","name":"anuncios","database":"qqx486","data":
  131. [
  132. {"id":"1","empresa":"Wok Bufet Gran Oriente","tel":"971 315 964","fax_principal":"","movil_principal":"","email_principal":"","web":"","facebook":"","horario_v_principal":"","horario_i_principal":"Abierto mediodu00eda y noche","direccion_principal":"C/ Josu00e9 Zornoza Bernabeu, 15, L2","poblacion_principal":"EIVISSA","activo":"no","tam_anuncio":"completa","twitter":"","link":"no","general":"no","isla":"ibiza","subtitulo":"","comentario":"","modificacion":"0000-00-00 00:00:00","promo1":"0","promo2":"0","instagram":"","tel2":"","tel3":"","tel4":"","movil2":"","movil3":"","movil4":""},
  133. ]
  134. }
  135. ,{"type":"table","name":"anuncios_direcciones","database":"qqx486","data":
  136. [
  137. {"id":"157","id_anuncio":"1","direccion":"C/ Sant Jaume, 114","poblacion":"SANTA EULu00c0RIA","telefono":" 971 336 274","fax":"","movil":"","email":"","horario_i":"","horario_v":""},
  138. ]
  139. }
  140. ,{"type":"table","name":"anuncios_gps_a","database":"qqx486","data":
  141. [
  142. {"id":"1","id_anuncio":"22","lat":"38.9082100","lon":"1.4289690","accuracy":"10"},
  143. ]
  144. }
  145. ,{"type":"table","name":"anuncios_gps_b","database":"qqx486","data":
  146. [
  147. {"id_anuncio_direcciones":"459","id_anuncio":"1068","lat":"0.0000000","lon":"0.0000000","acc":"0"},
  148. ]
  149. }
  150. ,{"type":"table","name":"anuncios_textos","database":"qqx486","data":
  151. [
  152. {"id_anuncio":"1","id_idioma":"1","descripcion":""},
  153. ]
  154. }
  155. ,{"type":"table","name":"caracteristicas","database":"qqx486","data":
  156. [
  157. {"id":"1","nombre":"Jardu00edn"},
  158. ]
  159. }
  160. ,{"type":"table","name":"caracteristicas_textos","database":"qqx486","data":
  161. [
  162. {"id_caracteristica":"1","id_idioma":"1","titulo":"Jardu00edn"},
  163. ]
  164. }
  165. ,{"type":"table","name":"categorias","database":"qqx486","data":
  166. [
  167. {"id":"1","nombre":"RESTAURANTES Y ALIMENTACIu00d3N","color":"","activo":"si","bdd":"guias","orden":"1","promoI":"0","promoF":"0","islas":"3"},
  168. ]
  169. }
  170. ,{"type":"table","name":"categorias_porsi","database":"qqx486","data":
  171. [
  172. {"id":"1","nombre":"RESTAURANTES Y ALIMENTACIu00d3N","color":"","activo":"si","bdd":"guias","orden":"1","promoI":"0","promoF":"0"},
  173. ]
  174. }
  175. ,{"type":"table","name":"categorias_textos","database":"qqx486","data":
  176. [
  177. {"id_categoria":"1","id_idioma":"1","titulo":"RESTAURANTES Y ALIMENTACIu00d3N","clave":""},
  178. ]
  179. }
  180. ,{"type":"table","name":"enlaces","database":"qqx486","data":
  181. [
  182. {"id":"1","nombre":"Digital Grafic Ibiza","web":"http://www.bestof.org"}
  183. ]
  184. }
  185. ,{"type":"table","name":"enlaces_textos","database":"qqx486","data":
  186. [
  187. {"id_enlace":"1","id_idioma":"1","descripcion":"Empresa en Ibiza"},
  188. ]
  189. }
  190. ,{"type":"table","name":"idiomas","database":"qqx486","data":
  191. [
  192. {"id":"1","nombre":"Espau00f1ol","self":"es","color":"F00"},
  193. ]
  194. }
  195. ,{"type":"table","name":"inmuebles","database":"qqx486","data":
  196. [
  197. {"id":"1","ref":"Roca Llisa","id_inmobiliaria":"91","tipo":"piso","estado":"","zona":"Santa Eulalia","sup_vivienda":"0","sup_parcela":"0","sup_terrazas":"0","plantas":"0","dormitorios":"3","banyos":"2","piscina":"no","parking":"no","entorno":"","precio":"380000","activo":"si"},
  198. ]
  199. }
  200. ,{"type":"table","name":"inmuebles_textos","database":"qqx486","data":
  201. [
  202. {"id_inmueble":"1","id_idioma":"1","titulo":"Roca Llisa","descripcion":"Apartamento du00faplex, cocina, salu00f3n/comedor, 2 terrazas, preciosas vistas al mar, piscina y paddle tenis comunitarios."},
  203. ]
  204. }
  205. ,{"type":"table","name":"playas","database":"qqx486","data":
  206. [
  207. {"id":"1","nombre":"PLATJA DE TALAMANCA","longitud":"900","orientacion":"SE","google":"https://www.google.es/maps/place/Cala+Talamanca/@38.9132677,1.4565971,16z/data=!4m2!3m1!1s0x1299414743b6e207:0xe628e2f006419c0d","cnauticas":"38u00b055u201900.8u201dN 1u00b027u201916.8u201dE","municipio":"Eivissa","activo":"si","orden":"0"},
  208. ]
  209. }
  210. ,{"type":"table","name":"playas_textos","database":"qqx486","data":
  211. [
  212. {"id_playa":"1","id_idioma":"1","breve":"Playa de arena fina a pocos minutos a pie de Marina Botafoch y a 1,8 km. del centro de la ciudad de Eivissa.","descripcion":"Se trata de una bahu00eda cerrada, poco profunda, ideal para el bau00f1o sin ningu00fan peligro y muy bien protegida por los vientos. Gran variedad en restaurantes, bares y chiringuitos, incluso algunos estu00e1n abiertos todo el au00f1o. Existe una pasarela de madera a lo largo de casi toda la playa. Se realizan cursos para iniciarse en deportes nu00e1uticos como el catamaru00e1n, kayak y windsurf.","servicios":"Restaurantes y chiringuitos u2013 Hoteles u2013 Alquiler de tumbonas y sombrillas u2013 Deportes acuu00e1ticos u2013 Duchas y WC pu00fablicos u2013 Acceso minusvu00e1lidos u2013 Parking gratis u2013 Transporte pu00fablico.","llegar":"En coche, en autobu00fas de lu00ednea regular o en una barquita que va del puerto de Eivissa hasta Botafoch, y de ahu00ed puede ir andando llegando en pocos minutos."},
  213. ]
  214. }
  215. ,{"type":"table","name":"promo","database":"qqx486","data":
  216. [
  217. {"id":"1","idioma":"1","empresa_id":"943","titulo":"10% Descuento","tituloCR":"8","tituloCG":"8","tituloCB":"8","tituloFS":"20","texto1":"7 horas de fiesta y mucho mu00e1s","texto1CR":"255","texto1CG":"255","texto1CB":"255","texto1FS":"20","fondo1CR":"255","fondo1CG":"43","fondo1CB":"227","fondo1CA":"90","texto2":"","foto1":"","foto2":"","code":"Cu00f3digo: Isla Blanca","tiempo1":"0000-00-00 00:00:00","tiempo2":"0000-00-00 00:00:00","activo":"2","status":"1","orden":"1"},
  218. ]
  219. }
  220. ,{"type":"table","name":"rel_anuncio","database":"qqx486","data":
  221. [
  222. {"id_anuncio":"814","id_categoria":"7","id_subcategoria":"81","orden":"37"},
  223. ]
  224. }
  225. ,{"type":"table","name":"rel_guias","database":"qqx486","data":
  226. [
  227. {"id_anuncio":"7","id_guia":"1"},
  228. ]
  229. }
  230. ,{"type":"table","name":"rel_inmuebles","database":"qqx486","data":
  231. [
  232. {"id_inmueble":"1","id_caracteristica":"2"},
  233. ]
  234. }
  235. ,{"type":"table","name":"subcategorias","database":"qqx486","data":
  236. [
  237. {"id":"1","id_categoria":"1","nombre":"Restaurantes","color":"","activo":"si","orden":"1","promoI":"0","promoF":"0","islas":"3"},
  238. ]
  239. }
  240. ,{"type":"table","name":"subcategorias_porsi","database":"qqx486","data":
  241. [
  242. {"id":"1","id_categoria":"1","nombre":"Restaurantes","color":"","activo":"si","orden":"1","promoI":"0","promoF":"0"},
  243. ]
  244. }
  245. ,{"type":"table","name":"subcategorias_textos","database":"qqx486","data":
  246. [
  247. {"id_subcategoria":"1","id_idioma":"1","nombre":"Restaurantes","clave":"restaurantes, pizzeru00edas, los productos de alimentaciu00f3n, almuerzos, cenas, fiestas, cu00f3cteles, cocktails, comen, comer, beber, las cocinsa mediterru00e1neas, barras, comedores, comiento, sitios para comer, restaurantes especializados en bistecs, el alimento japonu00e9s, comida japonesa, el alimento espau00f1ol, comida espau00f1ola, el alimento italiano, comida italiana, parrillas, la cocina francesa, el alimento alemu00e1n, comida alemana, comidas, licores, mariscos, el alimento asiu00e1tico, comida asiu00e1tica, pescados, mariscos, camarones, gambas, tabernas,"},
  248. ]
  249. }
  250. ,{"type":"table","name":"version","database":"qqx486","data":
  251. [
  252. {"id":"32"}
  253. ]
  254. }
  255. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement