Browse Source
[MIG] base_location: Migration to 13.0
[MIG] base_location: Migration to 13.0
* Standard procedure * Change v13 specifics * Adapt tests + correct some practices14.0
Pedro M. Baeza
5 years ago
11 changed files with 37 additions and 123 deletions
-
10base_location/README.rst
-
4base_location/__manifest__.py
-
32base_location/i18n/base_location.pot
-
66base_location/migrations/12.0.1.0.0/post-migration.py
-
15base_location/migrations/12.0.1.0.0/pre-migration.py
-
1base_location/models/res_city_zip.py
-
3base_location/models/res_company.py
-
6base_location/static/description/index.html
-
21base_location/tests/test_base_location.py
-
1base_location/views/res_city_view.xml
-
1base_location/views/res_city_zip_view.xml
@ -1,66 +0,0 @@ |
|||
# Copyright 2018 Tecnativa - Pedro M. Baeza |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from psycopg2.extensions import AsIs |
|||
from openupgradelib import openupgrade |
|||
|
|||
|
|||
@openupgrade.migrate() |
|||
def migrate(env, version): |
|||
column_name = openupgrade.get_legacy_name('better_zip_id') |
|||
openupgrade.logged_query( |
|||
env.cr, |
|||
"ALTER TABLE res_city_zip ADD %s INTEGER", (AsIs(column_name), ), |
|||
) |
|||
# Create a city for ZIPs without it |
|||
openupgrade.logged_query( |
|||
env.cr, """ |
|||
INSERT INTO res_city ( |
|||
name, state_id, country_id, |
|||
create_uid, create_date, write_uid, write_date |
|||
) |
|||
SELECT |
|||
city, state_id, country_id, |
|||
MIN(create_uid), MIN(create_date), MIN(write_uid), MIN(write_date) |
|||
FROM res_better_zip rbz |
|||
WHERE city_id IS NULL |
|||
AND rbz.country_id IS NOT NULL |
|||
AND rbz.name IS NOT NULL |
|||
GROUP BY city, state_id, country_id |
|||
ON CONFLICT DO NOTHING""", |
|||
) |
|||
# Update city_id in res_better_zip |
|||
openupgrade.logged_query( |
|||
env.cr, """ |
|||
UPDATE res_better_zip rbz |
|||
SET city_id = rc.id |
|||
FROM res_city rc |
|||
WHERE rc.name = rbz.city |
|||
AND rc.state_id = rbz.state_id |
|||
AND rc.country_id = rbz.country_id |
|||
AND rbz.city_id IS NULL""", |
|||
) |
|||
# Create records for new model |
|||
openupgrade.logged_query( |
|||
env.cr, """ |
|||
INSERT INTO res_city_zip ( |
|||
%s, name, city_id |
|||
) |
|||
SELECT |
|||
id, name, city_id |
|||
FROM res_better_zip |
|||
WHERE city_id IS NOT NULL |
|||
ON CONFLICT DO NOTHING""", |
|||
(AsIs(column_name), ), |
|||
) |
|||
# Recompute display name for entries inserted by SQL |
|||
env['res.city.zip'].search([])._compute_new_display_name() |
|||
# Link res.partner with corresponding new entries |
|||
openupgrade.logged_query( |
|||
env.cr, """ |
|||
UPDATE res_partner rp |
|||
SET zip_id = rcz.id |
|||
FROM res_city_zip rcz |
|||
WHERE rcz.%s = rp.%s""", |
|||
(AsIs(column_name), AsIs(openupgrade.get_legacy_name('zip_id')), ), |
|||
) |
@ -1,15 +0,0 @@ |
|||
# Copyright 2018 Tecnativa - Pedro M. Baeza |
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from openupgradelib import openupgrade |
|||
|
|||
|
|||
@openupgrade.migrate() |
|||
def migrate(env, version): |
|||
openupgrade.rename_columns( |
|||
env.cr, { |
|||
'res_partner': [ |
|||
('zip_id', None), |
|||
] |
|||
} |
|||
) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue