The migration from an UC7 site to DC8 is failing because of missing data. This could be because I've failed to configure something. Any suggestions are appreciated.

The errors are:

Migration d7_node:product did not meet the requirements. Missing migrations uc7_product_variation. requirements: uc7_product_variation.


Migration uc7_payment did not meet the requirements. Missing migrations uc7_order. requirements: uc7_order.

Migration uc7_order did not meet the requirements. Missing migrations uc7_order_product. requirements: uc7_order_product.


Thanks.

Comments

bogdog400 created an issue. See original summary.

bogdog400’s picture

I got a bit further with the migrations today by enabling the Ubercart submodule -- after installing the Drupal 8 module Commerce_Shipping. It's necessary to make the migration line up.

The products still don't migrate and I still hear that Migration d7_node:product did not meet the requirements. Missing migrations uc7_product_variation. requirements: uc7_product_variation.

bogdog400’s picture

And here's a SQL error that's appearing:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'temp-db.uc_attributes' doesn't exist: SELECT COUNT(*) AS expression FROM (SELECT 1 AS expression FROM @uc_attributes uca) subquery; Array ( )

jastraat’s picture

I'm running migrations one at a time migrating from D7 Ubercart to D8 Commerce. This is allowing me to see errors on individual migrations and what isn't succeeding.

The D7 site had only 4 node types one of which was 'product'. The production node type is not imported when running

drush migrate-import d7_node_type

The non-production node types are imported.

The following UC migrations worked without an error:

uc_profile_type
uc_shipping_flat_rate
uc_payment_gateway
uc_order_field
uc_order_field_instance
uc7_store
uc7_default_store
uc7_product_type
uc7_product_variation_type

Other migrations that threw various errors:

uc7_profile_billing: TypeError: Argument 1 passed to Drupal\profile\ProfileStorage::loadMultipleByUser() must implement interface Drupal\Core\Session\AccountInterface, null given, called in /commerce/web/modules/contrib/profile/src/Entity/Profile.php on line 288 in Drupal\profile\ProfileStorage->loadMultipleByUser() (line 16 of /commerce/web/modules/contrib/profile/src/ProfileStorage.php).

uc7_payment: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[D7 table].uc_attributes' doesn't exist

uc7_order_product: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[D7 table].uc_attributes' doesn't exist

uc7_order: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[D7 table].uc_attributes' doesn't exist

uc7_product_variation: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[D7 table].uc_attributes' doesn't exist

jastraat’s picture

Quick mention - if you run into the errors above, you can get past most of them by enabling the UC Attributes module in the D7 site you are migrating.

bogdog400’s picture

Yes, enabling the UC Attributes on the D7 site makes a big difference. Thank you for the suggestion.

I still have a strange partial migration. The Products appear in the D8 site when I look at the Content menu but they aren't in the Commerce store. That is empty.

oheller’s picture

I have UC Product Attributes enabled on my D7 sites, but I'm still getting the uc7_profile_billing error:

TypeError: Argument 1 passed to Drupal\profile\ProfileStorage::loadMultipleByUser() must implement interface Drupal\Core\Session\AccountInterface, null given, called in /commerce/web/modules/contrib/profile/src/Entity/Profile.php on line 288 in Drupal\profile\ProfileStorage->loadMultipleByUser() (line 16 of /commerce/web/modules/contrib/profile/src/ProfileStorage.php).

jastraat’s picture

@oheller - if you haven't found this already, there's a solution to the uc7_profile_billing error in https://www.drupal.org/project/commerce_migrate/issues/3048754#comment-1...

surya1626’s picture

I am migrating profiles from Ubercart (d7) to drupal 8 commerce.

@jastraat, I have tried deleting the abandoned profile order status in order but still getting the same error

TypeError: Argument 1 passed to Drupal\profile\ProfileStorage::loadMultipleByUser() must implement interface Drupal\Core\Session\AccountInterface, null given, called in /commerce/web/modules/contrib/profile/src/Entity/Profile.php on line 288 in Drupal\profile\ProfileStorage->loadMultipleByUser() (line 16 of /commerce/web/modules/contrib/profile/src/ProfileStorage.php).

quietone’s picture

Status: Active » Closed (duplicate)

@bogdog400, thanks for reporting this problem.

The problem that field values from an Ubercart 7 site are not migrated is being addressed in #3052488: Add field value migration to Ubercart 7 products. There is a patch there that is ready for testing. Please read the Issue Summary of there for details.

Regarding any problems with profile. The discussion of problems with the profile migration needs to be discussed in a separate issue. If there isn't an existing one then open a new one.

Thanks!