Files
tryton-db-migration/reports/model_diff.md
T
uha4 a55774eff2 neues skript sql_dump_diff.py zum Vergleich von 2 sql-dumps.
- leere, frisch initialisierte Datenbanken der Versionen verglichen
- datasetprogramme erkennen jetzt auch suche nach standardtabellen wie uom
2026-08-22 17:45:46 +02:00

459 lines
14 KiB
Markdown

# Modellbaum-Diff: 5.0 -> 8.0
## entfernt (12) - Modell existiert nicht mehr
- `country.zip`
- `ir.model.field-res.group`
- `product.template-stock.lot.type`
- `production.assign`
- `production.assign.failed`
- `stock.lot.type`
- `stock.shipment.in.return.assign`
- `stock.shipment.in.return.assign.failed`
- `stock.shipment.internal.assign`
- `stock.shipment.internal.assign.failed`
- `stock.shipment.out.assign`
- `stock.shipment.out.assign.failed`
## geändert (55) - Feld(er) entfernt oder geändert - Kandidat für einen echten Vergleichslauf
### `company.company`
- entfernte Felder: childs, parent
- (zusätzlich neue Felder: logo, logo_cache, tax_identifiers)
### `country.subdivision`
- **code**: required: True -> None
- **type**: required: True -> None
- (zusätzlich neue Felder: flag)
### `currency.currency`
- **symbol**: required: True -> None
### `currency.currency.rate`
- **currency**: required: None -> True
- **rate**: required: None -> True
### `ir.action`
- **type**: type: Char -> Selection
- (zusätzlich neue Felder: action, records)
### `ir.action.act_window`
- **domains**: type: Function[Binary] -> Function[Field]
- **views**: type: Function[Binary] -> Function[Field]
### `ir.action.act_window.domain`
- entfernte Felder: sequence
### `ir.action.act_window.view`
- entfernte Felder: sequence
- **act_window**: required: None -> True
- (zusätzlich neue Felder: model)
### `ir.action.keyword`
- **action**: required: None -> True
- **groups**: type: Function[One2Many] -> Function[Many2Many]
### `ir.action.report`
- entfernte Felder: email, pyson_email
- (zusätzlich neue Felder: record_name, report_content_html)
### `ir.action.wizard`
- entfernte Felder: email
### `ir.cron`
- entfernte Felder: args, function, model, name, number_calls, repeat_missed, request_user, user
- **interval_type**: required: None -> True
- **next_call**: required: True -> None
- (zusätzlich neue Felder: day, hour, logs, method, minute, running, timezone, weekday)
### `ir.model`
- entfernte Felder: info, model
- **fields**: required: True -> None
- **name**: required: None -> True
- (zusätzlich neue Felder: string)
### `ir.model.access`
- **model**: type: Many2One -> Char; relation: ir.model -> None
### `ir.model.button`
- **model**: type: Many2One -> Char; relation: ir.model -> None
### `ir.model.data`
- entfernte Felder: fs_values, out_of_sync, values
- **db_id**: required: True -> None
- (zusätzlich neue Felder: field_names)
### `ir.model.field`
- entfernte Felder: field_description, groups
- **model**: type: Many2One -> Char; relation: ir.model -> None
- (zusätzlich neue Felder: access, string)
### `ir.model.field.access`
- **field**: type: Many2One -> Char; relation: ir.model.field -> None
- (zusätzlich neue Felder: model)
### `ir.module`
- **childs**: type: Function[One2Many] -> Function[Many2Many]
- **parents**: type: Function[One2Many] -> Function[Many2Many]
### `ir.module.config_wizard.item`
- entfernte Felder: sequence
### `ir.rule.group`
- **model**: type: Many2One -> Char; relation: ir.model -> None
- **name**: required: None -> True
### `ir.sequence`
- entfernte Felder: code, groups
- (zusätzlich neue Felder: preview, sequence_type)
### `ir.sequence.strict`
- entfernte Felder: code, groups
- (zusätzlich neue Felder: preview, sequence_type)
### `ir.sequence.type`
- entfernte Felder: code
### `ir.translation`
- entfernte Felder: src_md5
- (zusätzlich neue Felder: field, src_plural, value_1, value_2, value_3)
### `ir.trigger`
- entfernte Felder: action_function, action_model, on_create, on_delete, on_time, on_write
- (zusätzlich neue Felder: action, on_create_, on_delete_, on_time_, on_write_)
### `ir.ui.icon`
- entfernte Felder: sequence
- **icon**: type: Function[Char] -> Function[Text]
### `ir.ui.view`
- entfernte Felder: priority
- (zusätzlich neue Felder: basis, extensions)
### `ir.ui.view_search`
- **user**: required: True -> None
### `ir.ui.view_tree_width`
- **width**: required: True -> None
- (zusätzlich neue Felder: occurrence, screen_width)
### `party.address`
- entfernte Felder: name, zip
- **street**: type: Text -> Function[Text]
- (zusätzlich neue Felder: attn, building_name, building_number, contact_mechanisms, floor_number, identifiers, post_box, post_office, postal_code, private_bag, room_number, street_name, street_single_line, street_unstructured, subdivision_types, unit_number, warehouses)
### `party.address.format`
- entfernte Felder: country, language
- (zusätzlich neue Felder: building_number_format, country_code, floor_number_format, language_code, post_box_format, post_office_format, private_bag_format, room_number_format, street_format, unit_number_format)
### `party.contact_mechanism`
- **value**: required: None -> True
- (zusätzlich neue Felder: address, delivery, language, languages)
### `product.cost_price`
- **cost_price**: required: None -> True
### `product.list_price`
- **template**: required: None -> True
- (zusätzlich neue Felder: product)
### `product.product`
- entfernte Felder: lead_times
- (zusätzlich neue Felder: code_readonly, identifiers, list_price, list_price_used, list_prices, position, prefix_code, production_lead_times, replaced_by, suffix_code)
### `product.template`
- entfernte Felder: height_digits, length_digits, volume_digits, weight_digits, width_digits
- **lot_required**: type: Many2Many -> MultiSelection; relation: product.template-stock.lot.type -> None
- (zusätzlich neue Felder: code, code_readonly, locations, lot_sequence)
### `production`
- entfernte Felder: effective_date, planned_date, reference, unit_digits, uom
- (zusätzlich neue Felder: origin, type, unit)
### `production.bom.input`
- entfernte Felder: unit_digits, uom
- **product**: required: True -> None
- (zusätzlich neue Felder: phantom_bom, unit)
### `production.bom.output`
- entfernte Felder: unit_digits, uom
- **product**: required: True -> None
- (zusätzlich neue Felder: phantom_bom, unit)
### `production.bom.tree`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: unit)
### `production.bom.tree.open.start`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: unit)
### `production.split.start`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: unit)
### `res.user`
- entfernte Felder: main_company
- **companies**: type: Function[One2Many] -> Many2Many; relation: None -> res.user-company.company
- **menu**: required: True -> None
- (zusätzlich neue Felder: avatar_badge_url, company_filter, notifications, warehouse)
### `res.user.application`
- **application**: required: None -> True
### `stock.inventory`
- entfernte Felder: lost_found
### `stock.inventory.count.quantity`
- entfernte Felder: quantity_added, quantity_resulting, unit_digits, uom
- (zusätzlich neue Felder: lot, quantity, total_quantity, unit)
### `stock.inventory.count.search`
- entfernte Felder: search_model
### `stock.inventory.line`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: inventory_date, inventory_location, unit)
### `stock.move`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: cost_price_required, delay, from_location_name, origin_planned_date, outcome_moves, product_cost_price, production, production_cost_price_updated, to_location_name, unit, unit_price_company, unit_price_updated)
### `stock.move.split.start`
- entfernte Felder: unit_digits, uom
- (zusätzlich neue Felder: unit)
### `stock.product.location`
- **product**: required: True -> None
- (zusätzlich neue Felder: template)
### `stock.shipment.in`
- **warehouse_input**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- **warehouse_storage**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- (zusätzlich neue Felder: delay, internal_volume, internal_weight, origin_planned_date, volume_uom, weight_uom)
### `stock.shipment.out`
- **warehouse_output**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- **warehouse_storage**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- (zusätzlich neue Felder: delay, internal_volume, internal_weight, origin_planned_date, packages_volume, packages_weight, partially_assigned, volume_uom, weight_uom)
### `stock.shipment.out.return`
- entfernte Felder: delivery_address
- **warehouse_input**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- **warehouse_storage**: type: Function[Many2One] -> Many2One; relation: None -> stock.location; required: None -> True
- (zusätzlich neue Felder: contact_address, delay, internal_volume, internal_weight, origin_planned_date, volume_uom, weight_uom)
## neu (76) - Modell gibt es erst ab 8.0
- `company.company.logo.cache`
- `company.company.tax_identifier`
- `country.organization`
- `country.organization.member`
- `country.postal_code`
- `country.region`
- `currency.cron`
- `currency.cron-currency.currency`
- `ir.avatar`
- `ir.avatar.cache`
- `ir.calendar.day`
- `ir.calendar.month`
- `ir.chat.channel`
- `ir.chat.follower`
- `ir.chat.message`
- `ir.cron.log`
- `ir.email`
- `ir.email.address`
- `ir.email.template`
- `ir.email.template-ir.action.report`
- `ir.error`
- `ir.export-res.group`
- `ir.export-write-res.group`
- `ir.filestore.queue`
- `ir.lang.config`
- `ir.lang.config.start`
- `ir.message`
- `ir.model.log`
- `ir.model.refresh_materialized`
- `ir.module.config.start`
- `ir.ui.view_tree_optional`
- `party.address.subdivision_type`
- `party.contact_mechanism.language`
- `party.party-delivered_to-stock.location`
- `product.configuration.default_lot_sequence`
- `product.cost_price.revision`
- `product.identifier`
- `product.modify_cost_price`
- `product.modify_cost_price.start`
- `product.price_list`
- `product.price_list.line`
- `product.product.replace`
- `product.product.replace.ask`
- `product.recompute_cost_price.start`
- `res.notification`
- `res.user-company.company`
- `res.user.device`
- `stock.configuration.measurement`
- `stock.location.waste`
- `stock.lot.trace`
- `stock.lots_by_locations`
- `stock.move.add.lots`
- `stock.move.add.lots.start`
- `stock.move.add.lots.start.lot`
- `stock.product_quantities_warehouse.move`
- `stock.product_quantities_warehouse.move.open`
- `stock.product_quantities_warehouse.open`
- `stock.products_by_locations`
- `stock.reporting.inventory`
- `stock.reporting.inventory.context`
- `stock.reporting.inventory.daily`
- `stock.reporting.inventory.move`
- `stock.reporting.inventory.range.context`
- `stock.reporting.inventory.turnover`
- `stock.reporting.inventory.turnover.context`
- `stock.reporting.margin.category`
- `stock.reporting.margin.category.time_series`
- `stock.reporting.margin.category.tree`
- `stock.reporting.margin.context`
- `stock.reporting.margin.main`
- `stock.reporting.margin.main.time_series`
- `stock.reporting.margin.product`
- `stock.reporting.margin.product.time_series`
- `stock.shipment.assign`
- `stock.shipment.assign.partial`
- `stock.shipment.drop`
## nur ergänzt (27) - nur neue Felder dazugekommen, Rest unverändert
- `company.employee`
- `country.country`
- `ir.configuration`
- `ir.export`
- `ir.lang`
- `ir.session`
- `ir.translation.export.result`
- `ir.ui.menu`
- `party.configuration`
- `party.identifier`
- `party.party`
- `product.by_location.context`
- `product.category`
- `product.configuration`
- `production.bom`
- `production.configuration`
- `res.group`
- `res.user.login.attempt`
- `stock.configuration`
- `stock.location`
- `stock.lot`
- `stock.package`
- `stock.product_quantities_warehouse`
- `stock.product_quantities_warehouse.context`
- `stock.products_by_locations.context`
- `stock.shipment.in.return`
- `stock.shipment.internal`
## unverändert (100) - komplett identisch geblieben
- `company.company.config`
- `company.company.config.start`
- `ir.action-res.group`
- `ir.action.url`
- `ir.attachment`
- `ir.cache`
- `ir.cron-company.company`
- `ir.date`
- `ir.export.line`
- `ir.model.button-button.reset`
- `ir.model.button-res.group`
- `ir.model.button.click`
- `ir.model.button.rule`
- `ir.model.graph`
- `ir.model.print_model_graph`
- `ir.model.print_model_graph.start`
- `ir.model.workflow_graph`
- `ir.module.activate_upgrade`
- `ir.module.activate_upgrade.done`
- `ir.module.activate_upgrade.start`
- `ir.module.config`
- `ir.module.config_wizard`
- `ir.module.config_wizard.done`
- `ir.module.config_wizard.first`
- `ir.module.config_wizard.other`
- `ir.module.dependency`
- `ir.note`
- `ir.note.read`
- `ir.queue`
- `ir.rule`
- `ir.rule.group-res.group`
- `ir.sequence.type-res.group`
- `ir.session.wizard`
- `ir.translation.clean`
- `ir.translation.clean.start`
- `ir.translation.clean.succeed`
- `ir.translation.export`
- `ir.translation.export.start`
- `ir.translation.report`
- `ir.translation.set`
- `ir.translation.set.start`
- `ir.translation.set.succeed`
- `ir.translation.update`
- `ir.translation.update.start`
- `ir.trigger.log`
- `ir.ui.menu-res.group`
- `ir.ui.menu.favorite`
- `ir.ui.view.show`
- `ir.ui.view.show.start`
- `ir.ui.view_tree_state`
- `party.category`
- `party.check_vies`
- `party.check_vies.result`
- `party.configuration.party_lang`
- `party.configuration.party_sequence`
- `party.erase`
- `party.erase.ask`
- `party.letter`
- `party.party-party.category`
- `party.party.lang`
- `party.party.location`
- `party.replace`
- `party.replace.ask`
- `product.configuration.default_cost_price_method`
- `product.cost_price_method`
- `product.product-production.bom`
- `product.recompute_cost_price`
- `product.template-product.category`
- `product.template-product.category.all`
- `product.uom`
- `product.uom.category`
- `production.bom.tree.open`
- `production.bom.tree.open.tree`
- `production.configuration.production_sequence`
- `production.lead_time`
- `production.split`
- `res.user-company.employee`
- `res.user-ir.action`
- `res.user-res.group`
- `res.user.config`
- `res.user.config.start`
- `res.user.email_reset_password`
- `res.user.warning`
- `stock.configuration.location`
- `stock.configuration.sequence`
- `stock.inventory.count`
- `stock.location.lead_time`
- `stock.location.lot.shelf_life`
- `stock.lots_by_location.context`
- `stock.move.split`
- `stock.period`
- `stock.period.cache`
- `stock.period.cache.lot`
- `stock.shipment.in.restocking_list`
- `stock.shipment.internal.report`
- `stock.shipment.out.delivery_note`
- `stock.shipment.out.picking_list`
- `stock.shipment.out.return.restocking_list`
- `stock.shipment.split`
- `stock.shipment.split.start`