Browse Source

[ADD] migrate from product_images v7 if necessary

pull/553/head
Holger Brunn 8 years ago
parent
commit
4fccfb9bcb
No known key found for this signature in database GPG Key ID: 1C9760FECA3AE18
  1. 2
      base_multi_image/__init__.py
  2. 1
      base_multi_image/__openerp__.py
  3. 32
      base_multi_image/hooks.py

2
base_multi_image/__init__.py

@ -3,5 +3,5 @@
# Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> # Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
# © 2015 Antiun Ingeniería S.L. - Jairo Llopis # © 2015 Antiun Ingeniería S.L. - Jairo Llopis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models from . import models
from .hooks import pre_init_hook

1
base_multi_image/__openerp__.py

@ -24,4 +24,5 @@
"images/form.png", "images/form.png",
"images/kanban.png", "images/kanban.png",
], ],
"pre_init_hook": "pre_init_hook",
} }

32
base_multi_image/hooks.py

@ -42,3 +42,35 @@ def pre_init_hook_for_submodules(cr, model, field):
""" % {"table": env[model]._table, "field": field}, """ % {"table": env[model]._table, "field": field},
(model,) (model,)
) )
def pre_init_hook(cr):
"""run the migration for product_images"""
migrate_from_product_images(cr)
def migrate_from_product_images(cr):
"""If we're installed on a database which has product_images from 7,
move its table so that we use the already existing images"""
cr.execute("SELECT 1 FROM pg_class WHERE relname = 'product_images'")
if not cr.fetchone():
return
cr.execute(
'alter table product_images rename to base_multi_image_image')
cr.execute(
'alter table base_multi_image_image rename product_id to owner_id')
cr.execute(
'alter table base_multi_image_image '
"add column owner_model varchar not null default 'product.template',"
"add column storage varchar not null default 'db'")
cr.execute(
'alter table base_multi_image_image '
'alter column owner_model drop default')
# we assume all images apply to all variants
cr.execute(
"update base_multi_image_image set "
"owner_id=p.product_tmpl_id "
"from product_product p where p.id=owner_id"
)
# and there might be dangling links
cr.execute('delete from base_multi_image_image where owner_id is null')
Loading…
Cancel
Save