tryton-upgrades/config.yml

889 lines
46 KiB
YAML

---
to_uninstall:
- account_invoice_post_in_tree
- account_cash_management
- account_chart_speedup
- account_invoice_data
- account_invoice_consecutive
- account_invoice_post_in_tree
- account_move_party_required
- account_payment_bank
- account_payment_es_csb_19
- account_payment_es_csb_32
- account_payment_es_csb_34
- account_payment_es_csb_34_01
- account_payment_es_csb_34_1_la_caixa
- account_payment_es_csb_34_11
- account_payment_es_csb_58
- account_payment_type_move
- account_bank_statement_csb43
- account_reconcile_different_party
- account_statement_of_account
- account_payment_type_move
- aeat_340
- aeat_303_es
- aeat_349_es
- analytic_account_asset
- asset_guarantee
- asset_estate
- audit_log
- calendar
- calendar_classification
- calendar_scheduling
- calendar_todo
- country_zip_es
- guarantee
- party_credit_limit
- party_vcarddav
- party_merge
- product_configuration
- product_barcode
- project_state_by_buttons
- project_auto_timesheet
- project_asterisk
- project_current_effort
- project_unittest
- project_unittest
- product_price_list_category
- production_origin # Remove in upgrade to 6.0
- sale_fedicom
- sale_invoices_paid
- sale_shipments_done
- stock_inventory_expected_quantity
- stock_picking_box
- stock_lot_expiry
- stock_reservation
- webdav
- stock_quality_control_trigger_shipment_in
- quality_control_trigger
- production_quality_control_trigger_lot
- stock_quality_control_trigger_lot
- commission_party
- production_cost_distribution
before:
# - tables: ir_model_data
# version: 3.2
# query: ALTER TABLE ir_model_data ADD COLUMN fs_values TEXT;
- version: 5.2
query:
UPDATE ir_model_data SET module = 'aeat_303' WHERE module = 'aeat_303_es';
UPDATE ir_model_data SET module = 'aeat_349' WHERE module = 'aeat_349_es';
UPDATE ir_translation SET module = 'aeat_303' WHERE module = 'aeat_303_es';
UPDATE ir_translation SET module = 'aeat_349' WHERE module = 'aeat_349_es';
DELETE from ir_ui_view where module = '';
DELETE from ir_ui_view where data = '' and module = 'account_payment_type';
UPDATE ir_ui_view SET type = NULL WHERE inherit IS NOT NULL AND type IS NOT NULL AND module <> 'farm';
DELETE FROM ir_model_data WHERE model='stock.location' AND fs_id LIKE '%transit%';
DELETE FROM ir_ui_view where module = '%sale%milestone%';
- comment: Remove name from account journal period
version: 4.8
tables: account_journal_period
query: ALTER TABLE account_journal_period DROP COLUMN IF EXISTS name;
- comment: drop constraint, new ones applied on module
version: 5.1
tables: account_account
query: ALTER TABLE account_account DROP CONSTRAINT IF EXISTS account_account_code_uniq;
- comment: # copy to migrate default values, must be dropped
version: 4.8
query: CREATE TABLE if not exists ir_property_backup as (select * from ir_property)
- comment: #Adapat fields from stock_lot_expiry to stock_lot_sled
fields: product_template.life_time
version: 4.8
query: ALTER TABLE product_template rename column life_time to shelf_life_time;
- comment: #Adapat fields from stock_lot_expiry to stock_lot_sled
fields: product_template.expiry_time
version: 4.8
query: ALTER TABLE product_template rename column expiry_time to expiration_time;
- comment: #Adapat fields from stock_lot_expiry to stock_lot_sled
fields: stock_lot.life_date
version: 4.8
query: ALTER TABLE stock_lot RENAME COLUMN life_date TO shelf_life_expiration_date;
- comment: #Adapat fields from stock_lot_expiry to stock_lot_sled
fields: stock_lot.expiry_date
version: 4.8
query: ALTER TABLE stock_lot RENAME COLUMN expiry_date TO expiration_date;
- comment: # Tax migration from new tax rules. on 4.7
tables: aeat_347_record
version: 5.2
query: create table if not exists mapping_taxes as select
a.*,
t.template as parent_template,
t.name
from (
select
t.id as tax_id,
t.name as tax_name,
t.parent as tax_parent,
t.include_347,
t.recargo_equivalencia,
i.fs_id,
i.db_id as template_id,
split_part(i.fs_id, '+',1)
from
ir_model_data i,
account_tax_template tt,
account_tax t
where
tt.id = t.template and
db_id = tt.id and
model='account.tax.template' and module='account_es' and
tt.parent is not null and fs_id like '%_child'
and t.include_347=true and t.recargo_equivalencia=false
UNION ALL
select
t.id as tax_id,
t.name as tax_name,
t.parent as tax_parent,
t.include_347,
t.recargo_equivalencia,
i.fs_id,
i.db_id as template_id,
rtrim(rtrim(rtrim(split_part(i.fs_id, '+',2),'_child'), 'iva'), 'irpf')
from
ir_model_data i,
account_tax_template tt,
account_tax t
where
tt.id = t.template and
i.db_id = tt.id and
model='account.tax.template' and module='account_es' and
tt.parent is not null and fs_id like '%_child'
and t.include_347 = false and t.recargo_equivalencia=false
UNION ALL
select
t.id as tax_id,
t.name as tax_name,
t.parent as tax_parent,
t.include_347,
t.recargo_equivalencia,
i.fs_id,
i.db_id as template_id,
rtrim(rtrim(rtrim(split_part(i.fs_id, '+',2),'_child'), 'iva'), '_re')
from
ir_model_data i,
account_tax_template tt,
account_tax t
where
tt.id = t.template and
i.db_id = tt.id and
model='account.tax.template' and module='account_es' and
tt.parent is not null and fs_id like '%_child'
and t.include_347 = true and t.recargo_equivalencia=true
UNION ALL
select
t.id as tax_id,
t.name as tax_name,
t.parent as tax_parent,
t.include_347,
t.recargo_equivalencia,
i.fs_id,
i.db_id as template_id,
rtrim(rtrim(rtrim(split_part(i.fs_id, '+',1),'_child'), 'iva'), '_re')
from
ir_model_data i,
account_tax_template tt,
account_tax t
where tt.id = t.template and
i.model='account.tax.template' and
i.module='account_es' and
i.db_id = tt.id and
t.parent is not null and fs_id like '%+re%iva_child'
) as a,
account_tax t
where a.tax_parent = t.id
- comment: remove deferral value in ir_model_data
version: 4.0
query: UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["deferral", false], ', '') where fs_values ilike '%["deferral", false],%' and module = 'account_es';
UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["deferral", true], ', '') where fs_values ilike '%["deferral", true],%' and module = 'account_es';
UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["deferral",true],', '') where fs_values ilike '%["deferral",true],%' and module = 'account_es';
UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["deferral",false],', '') where fs_values ilike '%["deferral",false],%' and module = 'account_es';
- tables: stock_location
version: 4.0
query: INSERT INTO stock_location (name, code, type, create_uid, create_date, "right", "left") VALUES ('Migration Drop Shipment', 'DROPMIGRATION', 'drop', 0, '2016-10-04 00:00:00', 0, 0);
- comment: # Rename table name - 3.6 migration
tables: account_financial_statement
query:
ALTER TABLE account_financial_statement_report_line_account
RENAME TO account_financial_statement_rep_lin_acco
- tables: account_financial_statement
query:
ALTER TABLE account_financial_statement_report_line_account_id_seq
RENAME TO account_financial_statement_rep_lin_acco_id_seq
# - comment: # [SQL]: Change tax sign for credit note (must be run before update)
# tables: account_tax_template
# version: 4.0
# query:
# UPDATE account_tax_template
# SET
# credit_note_base_sign = credit_note_base_sign * -1,
# credit_note_tax_sign = credit_note_tax_sign * -1;
- tables: account_tax
version: 4.0
query:
UPDATE account_tax
SET
credit_note_base_sign = credit_note_base_sign * -1,
credit_note_tax_sign = credit_note_tax_sign * -1;
- comment: # [SQL]: Fix amount second currency with 3.4 -> 3.6
version: 3.6
tables: account_move_line
query:
UPDATE account_move_line
SET
amount_second_currency = (amount_second_currency * -1)
WHERE amount_second_currency IS NOT NULL
AND SIGN(amount_second_currency) != SIGN(debit - credit)
- tables: shipment_work
version: 4.0
query: ALTER TABLE shipment_work RENAME COLUMN project TO work_project
- fields: sale_sale.project
version: 4.0
query: ALTER TABLE sale_sale RENAME COLUMN project TO work_project
- comment: # change PYSON context menu
version: 4.0
tables: babi_report
query: "UPDATE ir_action_act_window SET domain = '[[\"parent\", \"=\", null]]', context = '{\"babi_tree_view\": true}' WHERE context like '%babi%'"
- comment: babi introduces the company field with NOT NULL to babi_report_execution so we drop all data to ensure the constraint can be added
version: 4.2
tables: babi_report_execution
query: DELETE FROM babi_report_execution;
- comment: # set domain to null in account bank statement
version: 4.0
query: UPDATE ir_action_act_window SET domain = null where id in (SELECT db_id FROM ir_model_data where fs_id = 'act_account_bank_statement');
- comment: # set domain to null in account bank statement line
version: 4.0
query: UPDATE ir_action_act_window SET domain = null where id in (SELECT db_id FROM ir_model_data where fs_id = 'act_account_bank_statement_line');
- comment: # set update_unit_price to false
version: 4.0
query: update account_tax_template set update_unit_price = false where id = (select db_id from ir_model_data where fs_id = 'iva_reagp_compras_12_1');
- comment: # rename locale languages
version: 4.2
query: UPDATE ir_translation SET lang = 'en' WHERE lang = 'en_US';UPDATE ir_translation SET lang = 'ca' WHERE lang = 'ca_ES';UPDATE ir_translation SET lang = 'es' WHERE lang = 'es_ES';UPDATE ir_translation SET lang = 'pt' WHERE lang = 'pt_PT';UPDATE ir_translation SET lang = 'de' WHERE lang = 'de_DE';UPDATE ir_translation SET lang = 'it' WHERE lang = 'it_IT';UPDATE ir_translation SET lang = 'fr' WHERE lang = 'fr_FR';
- comment: # rename configuration locale
version: 4.2
query: UPDATE ir_configuration SET language = 'en' WHERE language = 'en_US';UPDATE ir_configuration SET language = 'ca' WHERE language = 'ca_ES';
- comment: # delete modules
version: 4.4
tables: ir_module
query: DELETE FROM ir_module WHERE name IN ('webdav', 'calendar', 'calendar_todo', 'calendar_scheduling', 'calendar_classification', 'party_vcarddav');
- comment: # delete modules
tables: ir_module_module
version: 4.4
query: DELETE FROM ir_module_module WHERE name IN ('webdav', 'calendar', 'calendar_todo', 'calendar_scheduling', 'calendar_classification', 'party_vcarddav');
- comment: # delete modules views
version: 4.4
query: DELETE FROM ir_ui_view WHERE module IN ('webdav', 'calendar', 'calendar_todo', 'calendar_scheduling', 'calendar_classification', 'party_vcarddav');
- comment: # update format address
tables: party_address_format
version: 4.4
query: UPDATE party_address_format SET format_ = REPLACE(format_, '${district}', '${subdivision}');
- comment: # remove wrong proprties
version: 4.4
query: delete from ir_property where res like 'party.party,None';
- comment: # delete party ir properties
version: 4.4
query: DELETE FROM ir_property where res like 'party.party,%' and SUBSTRING(res, POSITION(',' IN res) + 1)::integer not in (select id from party_party);
- comment: # delete product category ir properties
version: 4.4
query: DELETE FROM ir_property where res like 'product.category,%' and SUBSTRING(res, POSITION(',' IN res) + 1)::integer not in (select id from product_category);
- comment: # delete product ir properties
version: 4.4
query: DELETE FROM ir_property where res like 'product.template,%' and SUBSTRING(res, POSITION(',' IN res) + 1)::integer not in (select id from product_template);
- comment: # delete account_tax_rule ir properties
version: 4.4
query: DELETE FROM ir_property where value like 'account_tax_rule,None';
- comment: # delete account_tax_rule ir properties
version: 4.4
tables: account_tax_rule
query: DELETE FROM ir_property WHERE value LIKE 'account_tax_rule,%' AND SUBSTRING(value, POSITION(',' IN value) + 1)::integer not in (select id from account_tax_rule);
- comment: # delete properties of account_journal without foreign key
version: 4.7
tables: account_journal
query: delete from ir_property where id in (select id from ir_property where res like 'account.journal%' and value like 'ir.sequence%' and split_part(res, ',', 2)::int not in (select id from account_journal));
- comment: # delete properties of account_journal without foreign key
version: 4.7
tables: account_journal
query: delete from ir_property where id in (select id from ir_property where res like 'account.journal%' and value like 'account.account%' and split_part(res, ',', 2)::int not in (select id from account_journal));
- comment: # delete properties of stock_sequence without foreign key
version: 4.7
query: delete from ir_property where id in (select id from ir_property where res like 'stock.configuration%' and value like 'ir.sequence%' and split_part(res, ',', 2)::int not in (select id from ir_sequence));
- comment: # delete properties of party and account without foreign key
version: 4.7
tables: account_account
query: delete from ir_property where id in (select id from ir_property where res like 'party.party%' and value like 'account.account%' and split_part(value, ',', 2)::int not in (select id from account_account));
- comment: # delete default properties
version: 4.7
query: delete from ir_property where res is null;
# - comment: # drop ir properties in case account_asset is installed
# version: 4.4
# script: TODO https://bugs.tryton.org/issue6395
- comment: # update default_country ir_property
version: 4.4
query: UPDATE ir_property SET res = null where field in (select id from ir_model_field where name = 'default_country') and res = 'party.configuration,1';
- comment: # Update to lower case email of web users
version: 4.6
tables: web_user
query: UPDATE web_user SET email = LOWER(email);
# account_es and aeat
- comment: # add new column in code_uniq constrain when upgrade
version: 4.6
tables: account_account_template
query: ALTER TABLE account_account_template DROP CONSTRAINT if exists "account_account_template_code_uniq";
# - comment: # Rename model data aeat_349
# version: 4.6
# tables: ir_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module where name = 'account_es_pyme') where module = 'aeat_349' and fs_id like 'aeat_349_template%';
#
# - comment: # Rename model data aeat_349
# version: 4.6
# tables: ir_module_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module_module where name = 'account_es_pyme') where module = 'aeat_349' and fs_id like 'aeat_349_template%';
#
# - comment: # Rename model data aeat_303
# version: 4.6
# tables: ir_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module where name = 'account_es_pyme') where module = 'aeat_303' and fs_id like 'aeat_303_mapping_code_%_val%';
#
# - comment: # Rename model data aeat_303
# version: 4.6
# tables: ir_module_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module_module where name = 'account_es_pyme') where module = 'aeat_303' and fs_id like 'aeat_303_mapping_code_%_val%';
#
# - comment: # Rename model data aeat_340
# version: 4.6
# tables: ir_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module where name = 'account_es_pyme') where module = 'aeat_340' and fs_id like 'aeat_340_template_type_%';
#
# - comment: # Rename model data aeat_340
# version: 4.6
# tables: ir_module_module
# query: UPDATE ir_model_data set fs_id = fs_id || (select CASE WHEN state = 'installed' THEN '_pyme' ELSE '_normal' END FROM ir_module_module where name = 'account_es_pyme') where module = 'aeat_340' and fs_id like 'aeat_340_template_type_%';
- comment: # Add exceptional parent language (must be run before update
version: 4.8
tables: ir_lang
query: ALTER TABLE ir_lang ADD parent VARCHAR;
- comment: # delete register with type 'jasper' on core modules
version: 4.8
query: delete from ir_translation where module in ('account_invoice', 'sale', 'stock', 'purchase') and type = 'jasper';
- comment: # update jasper translations to report type
version: 4.8
query: update ir_translation set type = 'report' where type = 'jasper';
- comment: # uninstall account_es_pyme and install account_es
version: 4.6
where: SELECT count(*) FROM ir_model_data WHERE fs_id = 'es_pymes';
query: UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'base_pymes_', 'base_') where fs_id like 'base_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'baser_pymes_', 'baser_') where fs_id like 'baser_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'cuota_pymes_', 'cuota_') where fs_id like 'cuota_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'cuotar_pymes_', 'cuotar_') where fs_id like 'cuotar_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'cuotas_pymes_', 'cuotas_') where fs_id like 'cuotas_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'es_balance_pymes', 'es_balance_normal') where fs_id like 'es_balance_pymes%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'es_pyg_pymes', 'es_pyg_normal') where fs_id like 'es_pyg_pymes%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'es_pymes', 'es') where fs_id = 'es_pymes' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'fp_pymes_', 'fp_') where fs_id like 'fp_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'fptt_pymes_', 'fptt_') where fs_id like 'fptt_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'igic_pymes_', 'igic_') where fs_id like 'igic_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'irpf_pymes_', 'irpf_') where fs_id like '%irpf_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'ispc_pymes', 'ispc') where fs_id = 'ispc_pymes' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'irpf_pymes_', 'irpf_') where fs_id like 'irpf_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'iva_pymes_', 'iva_') where fs_id like '%iva_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 're_pymes_', 're_') where fs_id like '%re_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'pgc_pymes_', 'pgc_') where fs_id like 'pgc_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'recc_pymes', 'recc') where fs_id like 'recc_pymes%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'suplido_pymes_', 'suplido_') where fs_id like 'suplido_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'bases_pymes_', 'bases_') where fs_id like 'bases_pymes_%' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'vat_code_chart_pymes_root', 'vat_code_chart_root') where fs_id = 'vat_code_chart_pymes_root' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'tax_group_both_pymes', 'tax_group_both') where fs_id = 'tax_group_both_pymes' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'tax_group_purchase_pymes', 'tax_group_purchase') where fs_id = 'tax_group_purchase_pymes' and module = 'account_es_pyme';
UPDATE ir_model_data set fs_id = REPLACE(fs_id, 'tax_group_sale_pymes', 'tax_group_sale') where fs_id = 'tax_group_sale_pymes' and module = 'account_es_pyme';
UPDATE ir_model_data SET module = 'account_es' WHERE module = 'account_es_pyme';
UPDATE ir_translation set module = 'account_es' where module = 'account_es_pyme';
UPDATE ir_ui_view set module = 'account_es' where module = 'account_es_pyme';
UPDATE ir_model_field set module = 'account_es' where module = 'account_es_pyme';
UPDATE ir_module set state = 'not activated' where name = 'account_es_pyme';
UPDATE ir_module set state = 'activated' where name = 'account_es';
DELETE from ir_module_dependency where name = 'account_es_pyme';
- comment: # delete ir.export.line that has not export value trytond-issue6551
version: 4.4
query: DELETE from ir_export_line where export is null;
- comment: # upgrade ir.configuration
version: 4.2
query: update ir_configuration set language = 'es';
- comment: # alter table aeat_347_report_property column number
version: 4.2
tables: aeat_347_report_property
query: ALTER table aeat_347_report_property alter column number TYPE varchar(5);
- comment: # alter table aeat_303_report column previous_declaration_receipt
version: 4.2
tables: aeat_303_report
query: ALTER TABLE aeat_303_report ALTER COLUMN previous_declaration_receipt TYPE VARCHAR(13);
- comment: # remove deprecated journal type ir.model.data
version: 5.0
query: DELETE from ir_model_data where fs_id in ('journal_type_general', 'journal_type_revenue', 'journal_type_expense', 'journal_type_cash', 'journal_type_situation', 'journal_type_write_off', 'journal_type_statement');
- comment: # Delete unused crons
version: 4.8
query: DELETE from ir_cron where function in ('generate_requests', 'generate_internal_shipment');
DELETE from ir_model_data where module = 'stock_supply' and model = 'ir.cron';
- comment: # Delete unused crons
version: 5.4
query: DELETE from ir_cron where function in ('cron_post_clearing_moves');
DELETE from ir_cron where function in ('trigger_time');
- comment: # Delete unused crons
version: 5.6
query:
DELETE from ir_model_data where fs_id = 'cron_post_clearing_moves' and model = 'ir.cron';
DELETE FROM res_user WHERE login IN ('user_cron_post_clearing_moves');
DELETE FROM ir_model_data WHERE model='res.user' AND fs_id IN ('user_post_clearing_moves');
DELETE from ir_model_data where fs_id = 'cron_trigger_time' and model = 'ir.cron';
DELETE FROM res_user WHERE login IN ('user_cron_trigger');
DELETE FROM ir_model_data WHERE model='res.user' AND fs_id IN ('user_trigger');
- comment: # Remove error translations
version: 5.1
query: DELETE FROM "ir_translation" WHERE "type" = 'error';
- comment: # Remove src_md5 from ir_translation
version: 5.1
query: ALTER TABLE "ir_translation" DROP CONSTRAINT if exists "ir_translation_translation_md5_uniq";
- comment: # Remove src_md5 from ir_translation
version: 5.1
query: ALTER TABLE "ir_translation" DROP COLUMN if exists "src_md5";
- comment: # Rename account_category from product, if migrating from 4.0 or higher thtows error because accounts_category already exists
version: 4.0
query: ALTER TABLE product_template RENAME column account_category TO accounts_category;
- comment: # Change cast of month on account_invoice_payment_term_line
version: 4.0
fields: account_invoice_payment_term_line.month
query: ALTER TABLE account_invoice_payment_term_line ALTER COLUMN month TYPE INTEGER USING month::INT
- comment: # Change cast of weekday on account_invoice_payment_term_line
version: 4.0
fields: account_invoice_payment_term_line.weekday
query: ALTER TABLE account_invoice_payment_term_line ALTER COLUMN weekday TYPE INTEGER USING weekday::INT
- comment: # Set Second Currency of account_Account null if it's equal of company currency
version: 4.8
tables: account_account
query: update account_account set second_currency = null where second_currency=(select currency from company_company where id=company)
- comment: # remove style option in ir.action.window
version: 4.8
query: UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["style",""],', '') where fs_id like 'report_%' and model = 'ir.action.report';
UPDATE ir_model_data set values = REPLACE(fs_values, '["style",""],', '') where fs_id like 'report_%' and model = 'ir.action.report';
UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["style","company/header_A4.odt"],', '') where fs_id like 'report_%' and model = 'ir.action.report';
UPDATE ir_model_data set fs_values = REPLACE(fs_values, '["style","company/header_A4.odt"],', '') where fs_id like 'report_%' and model = 'ir.action.report';
- comment: Remove lead_time field from stock_location_lead_time. The type was float in our patch in version 3.4 but now it's better to remove and let trytond recreate it as few people are using it.
version: 5.2
fields: stock_location_lead_time.lead_time
query: ALTER TABLE stock_location_lead_time DROP COLUMN lead_time;
- comment: Remove lead_time field from production_lead_time. The type was float in our patch in version 3.4 but now it's better to remove and let trytond recreate it as few people are using it.
version: 5.2
fields: production_lead_time.lead_time
query: ALTER TABLE production_lead_time DROP COLUMN lead_time;
- script: ./upgrades/before/remove_deprecated_taxes.py
version: 5.2
- comment: replace account_payment_sepa_message from TEXT to BYTEA
version: 5.4
tables: account_payment_sepa_message
query: ALTER TABLE account_payment_sepa_message ALTER COLUMN message TYPE BYTEA USING message::BYTEA;
- comment: # Delete unused users
version: 4.8
query: DELETE FROM ir_model_data WHERE module = 'stock_supply' AND model = 'res.user';
DELETE FROM ir_model_data WHERE module = 'stock_supply_production' AND model = 'res.user';
DELETE FROM ir_model_data WHERE module = 'res' AND model = 'res.user' AND fs_id IN ('user_trigger', 'user_cron_trigger');
- comment: # Upgrade 5.6
version: 5.6
tables: sale_amendment_line
query: ALTER TABLE sale_amendment_line DROP CONSTRAINT sale_amendment_line_shipment_party_fkey;
- comment: Delete nantic_connection users which were removed in 5.4 branch
version: 5.4
query: DELETE FROM res_user WHERE login IN ('user_send_modules', 'user_send_data');
- comment: Delete nantic_connection users which were removed in 5.4 branch
version: 5.4
query: DELETE FROM ir_model_data WHERE model='res.user' AND fs_id IN ('user_send_modules', 'user_send_data');
- comment: set type to null from ir.ui.view that is an inherit
version: 5.4
query: update ir_ui_view set type = null from (select db_id from ir_model_data where module = 'account_bank_statement_payment' and fs_id = 'move_line_bank_statement_lines') as sub where id = sub.db_id;
# From 5.4 to 5.6
# https://discuss.tryton.org/t/migration-from-5-4-to-5-6/2303
#
#
# From 5.6 to 5.8
# https://discuss.tryton.org/t/migration-from-5-6-to-5-8/3341
#
# From 5.8 to 6.0
# https://discuss.tryton.org/t/migration-from-5-8-to-6-0/3603
- comment: before update, add access on field
version: 5.8
query: ALTER TABLE ir_model_field ADD COLUMN IF NOT EXISTS "access" BOOLEAN;
- comment: Delete unused users
version: 5.8
query: DELETE FROM res_user WHERE login IN ('user_trigger', 'user_cron_purchase_request', 'user_cron_internal_shipment', 'user_cron_production_request', 'user_cron_trigger', 'user_cron_process_purchase', 'user_cron_process_sale', 'user_cron_post_clearing_moves', 'user_send_modules', 'user_send_data', 'user_clean_executions', 'user_cron_deactivate_lots_without_stock');
- comment: Delete unused users
version: 5.8
query: DELETE FROM ir_model_data WHERE fs_id IN ('user_clean_executions', 'user_deactivate_lots_without_stock');
- comment: Before update, the foreign key of shipment_party of sale amendment must be recreated
version: 5.8
tables: sale_amendment_line
query: ALTER TABLE sale_amendment_line DROP CONSTRAINT sale_amendment_line_shipment_party_fkey;
- comment: Remove user_send_summary user (brain)
version: 5.8
query: DELETE FROM res_user WHERE login = 'user_send_summary';DELETE from ir_model_data where fs_id = 'user_send_summary' and module = 'brain' and model = 'res.user';
- comment: Delete user_cron_imap user
version: 5.8
query: DELETE from res_user where login = 'user_cron_imap';DELETE from ir_model_data where fs_id = 'user_imap' and model = 'res.user';
- comment: Delete user_clean_execution_group_babi_admin group user
version: 5.8
query: DELETE from "res_user-res_group" where id in (select db_id from ir_model_data where module = 'babi' and fs_id = 'user_clean_execution_group_babi_admin' and model = 'res.user-res.group');
DELETE from ir_model_data where module = 'babi' and fs_id = 'user_clean_execution_group_babi_admin' and model = 'res.user-res.group';
- comment: Delete sale_discount, purchase_discount and account_invoice_discount reports
version: 5.8
query: DELETE from ir_action_report where id in (select db_id from ir_model_data where module = 'sale_discount' and fs_id = 'report_sale') and module = 'sale_discount';
DELETE from ir_model_data where module = 'sale_discount' and fs_id = 'report_sale';
DELETE from ir_action_report where id in (select db_id from ir_model_data where module = 'purchase_discount' and fs_id = 'report_purchase') and module = 'purchase_discount';
DELETE from ir_model_data where module = 'purchase_discount' and fs_id = 'report_purchase';
DELETE from ir_action_report where id in (select db_id from ir_model_data where module = 'account_invoice_discount' and fs_id = 'report_invoice') and module = 'account_invoice_discount';
DELETE from ir_model_data where module = 'account_invoice_discount' and fs_id = 'report_invoice';
after:
- comment: Remove include_347 from party
version: 5.1
tables: party_party
query: ALTER TABLE party_party DROP COLUMN IF EXISTS include_347;
- comment: Remove include_347 from account_tax_rule
version: 5.1
tables: account_tax_rule
query: ALTER TABLE account_tax_rule DROP COLUMN IF EXISTS include_347;
- comment: Remove include_347 from account_tax_rule_template
version: 5.1
tables: account_tax_rule_template
query: ALTER TABLE account_tax_rule_template DROP COLUMN IF EXISTS include_347;
- DELETE FROM ir_translation WHERE module = 'account_es_pyme';
- comment: -> Change sign on account_tax_line
version: 3.8 # TODO: check i 3.8 needs.
query: update account_tax_line set amount=amount*-1 where type = 'tax' and tax in (select id from account_tax where name ilike '%(2)%');
- comment: # translations fuzzy to false
version: 5.2
query: UPDATE ir_translation set fuzzy = false where fuzzy = true and res_id = -1;
- comment: -> 4.8
version: 4.8
tables: aeat_303_mapping-account_tax_code
query: delete from "aeat_303_mapping-account_tax_code"
- commnet: -> 4.8
version: 4.8
tables: aeat_303_mapping
query: delete from aeat_303_mapping ;
- comment: -> 4.7
version: 4.7
tables: account_tax_template
query: update account_tax_template set update_unit_price = false where update_unit_price
- comment: -> 4.7
version: 4.7
tables: account_tax
query: update account_tax set update_unit_price = false where update_unit_price
- comment: -> 4.0
version: 4.0
query: UPDATE account_move_reconciliation SET date=create_date::DATE WHERE date IS NULL;
- comment: # Change login's length
version: 5.2
tables: res_user_login_attempt
query: ALTER TABLE res_user_login_attempt ALTER COLUMN login TYPE character varying(512);
- comment: # Mark all categories as accounting type
version: 4.0
tables: product_category
query: UPDATE product_category SET accounting = True;
- comment: # Set reconciliation date
version: 5.2
tables: account_move_reconciliation
query: UPDATE account_move_reconciliation SET date=create_date WHERE date IS NULL;
- tables: account_move_reconciliation
version: 5.2
query: ALTER TABLE account_move_reconciliation ALTER COLUMN date SET NOT NULL;
- tables: contract
version: 5.2
query: UPDATE contract SET first_invoice_date=start_period_date WHERE first_invoice_date IS NULL;
- tables: asset
version: 5.2
query: ALTER TABLE asset ALTER COLUMN company SET NOT NULL;
- tables: timesheet_line
version: 5.2
query: ALTER TABLE timesheet_line ALTER COLUMN duration SET NOT NULL;
- tables: stock_shipment_in_return
version: 5.2
query: ALTER TABLE stock_shipment_in_return ALTER COLUMN supplier SET NOT NULL;
- tables: contract
version: 5.2
query: ALTER TABLE contract ALTER COLUMN first_invoice_date SET NOT NULL;
- tables: asset
version: 5.2
query: UPDATE asset SET company = 1 WHERE company IS NULL;
- comment: Drop category column
version: 5.2
fields: product_template.category
query: ALTER TABLE product_template DROP COLUMN category;
- tables: country_zip
query: update country_zip set country = (select id from country_country where code = 'ES') where country_zip is null;
version: 4.0
- tables: electronic_mail_template
version: 4.0
query: update electronic_mail_template set subject = regexp_replace(subject, 'record.code', 'record.number', 'g'), plain = regexp_replace(plain, 'record.code', 'record.number', 'g'), html = regexp_replace(html, 'record.code', 'record.number', 'g') where model in (select id from ir_model where model in ('account.invoice', 'sale.sale', 'purchase.purchase', 'stock.shipment.in', 'stock.shipment.out', 'stock.shipment.in'));
- comment: # change code to number electronic mail template
version: 4.0
tables: electronic_mail_template
query: update ir_translation set value = regexp_replace(value, 'record.code', 'record.number', 'g') where res_id in (select id from electronic_mail_template where model in (select id from ir_model where model in ('account.invoice', 'sale.sale', 'purchase.purchase', 'stock.shipment.in', 'stock.shipment.out', 'stock.shipment.in'))) and name like 'electronic.mail.template,%';
- comment: # After property migration old model data should be cleared:
version: 4.4
query: DELETE FROM ir_model_data WHERE model = 'ir.property';
- comment: # Relation between purchase and invoice_lines must be deleted
version: 4.4
query: DROP TABLE if exists purchase_invoice_line_rel;
- comment: # Update address formats
version: 4.4
query: UPDATE party_address_format SET format_ = REPLACE(format_, '${district}', '${subdivision}');
- comment: # delete duplicated party configuration sequence
version: 4.4
query: DELETE FROM party_configuration_party_sequence where id = 2;
- comment: # migration from sale_opportunity module to core.
tables: opportunity_sale_rel
version: 4.7
query: update sale_sale s set origin = 'sale.opportunity,'|| o.opportunity from opportunity_sale_rel o where s.id = o.sale
- comment: # update template extension jasper reports
version: 4.7
query: update ir_action_report set template_extension = 'jrxml' where report like '%jrxml';
- comment: # Set product as producible
version: 4.7
tables: "product_product-production_bom"
query: update product_template set producible = true where id in(select p.template from "product_product-production_bom" pb, product_product p where pb.product=p.id)
- comment: # Set account in account bank statement journal. Get value from ir_propery and try find credit or debit account because in ir_model_field there is no available ID field
version: 4.7
tables: "account_bank_statement_journal"
query: update account_bank_statement_journal set account = substring(sub.value, 17)::int from (select ip.value, ip.res from account_bank_statement_journal as absj left join account_journal as aj on absj.journal = aj.id inner join ir_property_backup as ip on ip.res = concat('account.journal,', aj.id) and ip.value like 'account.account,%') as sub where journal = substring(sub.res, 17)::int;
- comment: # deprecated model
version: 4.7
query: DELETE from ir_model_data where model = 'account.journal.type'
- comment: # update sale customer_reference to sale reference (sale_reference)
fields: sale_sale.customer_reference
version: 4.8
query: update sale_sale set reference = customer_reference where customer_reference is not null and customer_reference != '';
- comment: # Remove account_bank_reconciliation that the bank_reconcile is False in account
version: 4.8
tables: "account_bank_reconciliation"
query: delete from account_bank_reconciliation where id in (select abr.id from account_bank_reconciliation as abr left join account_move_line as aml on abr.move_line = aml.id left join account_account as aa on aa.id = aml.account where aa.bank_reconcile = False);
- comment: # Set end_date inactive account taxes and accounts
version: 5.0
tables: account_account
query: update account_account set end_date = current_date, template_override = True where active = False and end_date is null and template is not null;
update account_account set end_date = current_date where active = False and end_date is null;
update account_tax set end_date = current_date, template_override = True where active = False and end_date is null and template is not null;
update account_tax set end_date = current_date, template_override = True where active = False and end_date is null;
- comment: # Set end_date inactive account taxes and accounts
version: 5.0
tables: account_account
query: update account_account set end_date = current_date, template_override = True where active = False and end_date is null and template is not null;
update account_account set end_date = current_date where active = False and end_date is null;
update account_tax set end_date = current_date, template_override = True where active = False and end_date is null and template is not null;
update account_tax set end_date = current_date, template_override = True where active = False and end_date is null;
- comment: #disable old taxes not contempled.
version: 5.0
tables: account_tax
query: update account_tax set active=false, end_date=now()::date where name like '%IRPF%+%IVA%' and active = True
- comment: We need this query before sync_model_data.py otherwise it fails
version: 5.2
query: update ir_model_data set fs_values = REPLACE(fs_values, '["update_unit_price",true]', '["update_unit_price",false]') WHERE fs_values like '%["update_unit_price",true]%';
- comment: We need this query before sync_model_data.py otherwise it fails
version: 5.2
query: update ir_model_data set values = REPLACE(values, '["update_unit_price",true]', '["update_unit_price",false]') WHERE values like '%["update_unit_price",true]%';
- comment: # 347 replace 'none' to None aeat347_operation_key
version: 5.2
tables: aeat_347_report
query: update account_invoice set aeat347_operation_key = null where aeat347_operation_key = 'none';
- comment: # https://hg.tryton.org/modules/sale/rev/5809fe404415
version: 5.4
tables: product_price_list_line
query: UPDATE product_price_list_line set formula = REPLACE(formula, 'product.list_price', 'product.list_price_used') where formula like '%product.list_price%';
- comment: set company that is null
version: 4.4
tables: product_cost_price
query: UPDATE product_cost_price SET company = 1 WHERE company IS NULL;
- comment: replace ir.cron method
version: 5.4
query: UPDATE ir_cron set method = 'babi.report|calculate_babi_report' where method = 'calculate_babi_report';
- script: ./upgrades/after/upgrade_account_chart.py
tables: account_account
version: 4.8
- comment: # upgrade configuration models from ir_property
version: 4.8
script: ./upgrades/after/migration_properties.py
- comment: # update taxes
version: 4.4
tables: mapping_taxes
script: ./upgrades/after/update_taxes.py
- script: ./upgrades/after/convert_domain_rules.py
version: 4.8
# - script: ./upgrades/after/upload_sii.py
# tables: aeat_sii_report_lines
- script: ./upgrades/after/upgrade_account_invoice_discount_global.py
tables: account_invoice
version: 4.8
- comment: Delete unused users from ir_model_data
version: 5.0
query: DELETE FROM ir_model_data WHERE model='res.user' AND fs_id IN ('user_trigger', 'user_process_purchase', 'user_process_sale', 'user_post_clearing_moves', 'user_cron_trigger', 'user_send_modules', 'user_send_data', 'user_clean_executions');
- comment: # upgrade countries/subdivision and locales
script: ./upgrades/after/upgrade_country.sh
version: 5.2
# From 5.4 to 5.6
# https://discuss.tryton.org/t/migration-from-5-4-to-5-6/2303
- comment: Update project status based on previous state
version: 5.6
tables: project_work
query: UPDATE project_work SET status = db_id FROM ir_model_data WHERE module = 'project' AND fs_id = 'work_open_status' AND state = 'opened';
- comment: Update project status based on previous state
version: 5.6
tables: project_work
query: UPDATE project_work SET status = db_id FROM ir_model_data WHERE module = 'project' and fs_id = 'work_done_status' AND state = 'done';
#
#
# From 5.6 to 5.8
# https://discuss.tryton.org/t/migration-from-5-6-to-5-8/3341
#
# From 5.8 to 6.0
# https://discuss.tryton.org/t/migration-from-5-8-to-6-0/3603
- comment: fix currency, invoice_type and party on invoice line
version: 5.8
tables: account_invoice_line
query: UPDATE account_invoice_line SET currency = (SELECT currency FROM account_invoice WHERE id = account_invoice_line.invoice) WHERE invoice IS NOT NULL;
UPDATE account_invoice_line SET invoice_type = (SELECT type FROM account_invoice WHERE id = account_invoice_line.invoice) WHERE invoice_type IS NOT NULL;
UPDATE account_invoice_line SET party = (SELECT party FROM account_invoice WHERE id = account_invoice_line.invoice) WHERE party IS NOT NULL;
UPDATE account_invoice_line SET invoice_type = 'in' WHERE invoice_type IS NULL and invoice is NULL and origin like 'purchase%';
UPDATE account_invoice_line SET invoice_type = 'out' WHERE invoice_type IS NULL and invoice is NULL and origin like 'sale%';
- comment: after update, remove code column
version: 5.8
query: ALTER TABLE ir_sequence_type DROP COLUMN code
- comment: all versions sync model data
script: ./upgrades/after/sync_model_data.py
- comment: Migrate data from commission_party agent to new agent in commission module
version: 6.0
tables: party_party_commission_agent commission_agent_selection
query: INSERT INTO commission_agent_selection (agent,party) SELECT agent, party FROM party_party_commission_agent WHERE agent IS NOT NULL;
- comment: Merge sepa identifier into eu_at_02
version: 5.6
query: UPDATE party_configuration SET identifier_types = REPLACE(identifier_types, 'sepa', 'eu_at_02');
- comment: replace forbidden char
version: 5.8
script: ./upgrades/after/replace_forbidden_char.py
- comment: Use the new field code in template instead of product code in templates with unique_variant
version: 6.0
fields: product_template.unique_variant
tables: product_template product_product
query: UPDATE product_template SET code = (SELECT code FROM product_product WHERE template = product_template.id AND product_template.unique_variant = True AND product_product.active = True) WHERE unique_variant = True;
- comment: Delete code from products with unique_variant
version: 6.0
fields: product_template.unique_variant
tables: product_product product_template
query: UPDATE product_product SET suffix_code = null WHERE template IN (SELECT id FROM product_template WHERE unique_variant = True);
- comment: Add lost and found location to warehouse location configuration
version: 6.0
tables: stock_location
query: UPDATE stock_location SET lost_found_location = db_id FROM ir_model_data WHERE module = 'stock' and fs_id = 'location_lost_found' AND type = 'warehouse';
ignore:
- WARNING trytond.backend.postgresql.table Unable to set column move_line of table analytic_account_line not null !