Git Product home page Git Product logo

v2-migration-tool's People

Contributors

alexisvigoureux avatar michaelbromley avatar yasserlens avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

v2-migration-tool's Issues

Migration failed, error: relation "promotion_translation" does not exist

I'm getting the following error when trying to migrate from 1.x to 2.0:
Migration "v21686572613596" failed, error: relation "promotion_translation" does not exist

I followed all steps here up to the migration:run command:
https://github.com/vendure-ecommerce/v2-migration-tool/blob/master/README.md#migrating-your-db-from-vendure-v1-to-v2

When trying to run the generated migration (after making the manual changes suggested and resolving an issue with ForeignKeys) I got that error.

I see that promotion_translation table is created in the migration file - not sure what triggers the error above. Any help would be appreciated.
We're on a PostgreSQL DB

migration queries are below (contents of the up() method in the migration file):

public async up(queryRunner: QueryRunner): Promise<any> {
          await queryRunner.query(`ALTER TABLE "vendure"."product_option_translation" DROP CONSTRAINT "FK_a79a443c1f7841f3851767faa6d"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_option_group_translation" DROP CONSTRAINT "FK_93751abc1451972c02e033b766c"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_movement" DROP CONSTRAINT "FK_cbb0990e398bf7713aebdd38482"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_price" DROP CONSTRAINT "FK_e6126cd268aea6e9b31d89af9ab"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_translation" DROP CONSTRAINT "FK_420f4d6fb75d38b9dca79bc43b4"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."shipping_method_translation" DROP CONSTRAINT "FK_85ec26c71067ebc84adcd98d1a5"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."shipping_line" DROP CONSTRAINT "FK_c9f34a440d490d1b66f6829b86c"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" DROP CONSTRAINT "FK_b7aae1935dcbddf6d2ebc14e4a1"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" DROP CONSTRAINT "FK_fcf63e894db07100bb37a433bbc"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."address" DROP CONSTRAINT "FK_d87215343c3a3a67e6a0b7f3ea9"`, undefined);

          // Step 1.
          //    await queryRunner.query(`ALTER TABLE "vendure"."stock_movement" RENAME COLUMN "orderItemId" TO "stockLocationId"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_movement" ADD "stockLocationId" integer`);


          await queryRunner.query(`CREATE TABLE "vendure"."seller" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP, "name" character varying NOT NULL, "id" SERIAL NOT NULL, CONSTRAINT "PK_36445a9c6e794945a4a4a8d3c9d" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."region_translation" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "languageCode" character varying NOT NULL, "name" character varying NOT NULL, "id" SERIAL NOT NULL, "baseId" integer, CONSTRAINT "PK_3e0c9619cafbe579eeecfd88abc" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1afd722b943c81310705fc3e61" ON "vendure"."region_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."region" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "code" character varying NOT NULL, "type" character varying NOT NULL, "enabled" boolean NOT NULL, "id" SERIAL NOT NULL, "parentId" integer, "discriminator" character varying NOT NULL, CONSTRAINT "PK_5f48ffc3af96bc486f5f3f3a6da" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_ed0c8098ce6809925a437f42ae" ON "vendure"."region" ("parentId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."stock_location" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "name" character varying NOT NULL, "description" character varying NOT NULL, "id" SERIAL NOT NULL, CONSTRAINT "PK_adf770067d0df1421f525fa25cc" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."stock_level" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "stockOnHand" integer NOT NULL, "stockAllocated" integer NOT NULL, "id" SERIAL NOT NULL, "productVariantId" integer NOT NULL, "stockLocationId" integer NOT NULL, CONSTRAINT "PK_88ff7d9dfb57dc9d435e365eb69" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_9950eae3180f39c71978748bd0" ON "vendure"."stock_level" ("productVariantId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_984c48572468c69661a0b7b049" ON "vendure"."stock_level" ("stockLocationId") `, undefined);
          await queryRunner.query(`CREATE UNIQUE INDEX "IDX_7fc20486b8cfd33dc84c96e168" ON "vendure"."stock_level" ("productVariantId", "stockLocationId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."order_line_reference" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "quantity" integer NOT NULL, "id" SERIAL NOT NULL, "fulfillmentId" integer, "modificationId" integer, "orderLineId" integer NOT NULL, "refundId" integer, "discriminator" character varying NOT NULL, CONSTRAINT "PK_21891d07accb8fa87e11165bca2" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_7d57857922dfc7303604697dbe" ON "vendure"."order_line_reference" ("orderLineId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_06b02fb482b188823e419d37bd" ON "vendure"."order_line_reference" ("fulfillmentId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_22b818af8722746fb9f206068c" ON "vendure"."order_line_reference" ("modificationId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_30019aa65b17fe9ee962893199" ON "vendure"."order_line_reference" ("refundId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_49a8632be8cef48b076446b8b9" ON "vendure"."order_line_reference" ("discriminator") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."promotion_translation" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "languageCode" character varying NOT NULL, "name" character varying NOT NULL, "description" text NOT NULL, "id" SERIAL NOT NULL, "baseId" integer, CONSTRAINT "PK_0b4fd34d2fc7abc06189494a178" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1cc009e9ab2263a35544064561" ON "vendure"."promotion_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."payment_method_translation" ("createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "languageCode" character varying NOT NULL, "name" character varying NOT NULL, "description" text NOT NULL, "id" SERIAL NOT NULL, "baseId" integer, CONSTRAINT "PK_ae5ae0af71ae8d15da9eb75768b" PRIMARY KEY ("id"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_66187f782a3e71b9e0f5b50b68" ON "vendure"."payment_method_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."zone_members_region" ("zoneId" integer NOT NULL, "regionId" integer NOT NULL, CONSTRAINT "PK_fc4eaa2236c4d4f61db0ae3826f" PRIMARY KEY ("zoneId", "regionId"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_433f45158e4e2b2a2f344714b2" ON "vendure"."zone_members_region" ("zoneId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_b45b65256486a15a104e17d495" ON "vendure"."zone_members_region" ("regionId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."stock_location_channels_channel" ("stockLocationId" integer NOT NULL, "channelId" integer NOT NULL, CONSTRAINT "PK_e6f8b2d61ff58c51505c38da8a0" PRIMARY KEY ("stockLocationId", "channelId"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_39513fd02a573c848d23bee587" ON "vendure"."stock_location_channels_channel" ("stockLocationId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_ff8150fe54e56a900d5712671a" ON "vendure"."stock_location_channels_channel" ("channelId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."order_fulfillments_fulfillment" ("orderId" integer NOT NULL, "fulfillmentId" integer NOT NULL, CONSTRAINT "PK_414600087d71aee1583bc517590" PRIMARY KEY ("orderId", "fulfillmentId"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_f80d84d525af2ffe974e7e8ca2" ON "vendure"."order_fulfillments_fulfillment" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_4add5a5796e1582dec2877b289" ON "vendure"."order_fulfillments_fulfillment" ("fulfillmentId") `, undefined);
          await queryRunner.query(`CREATE TABLE "vendure"."collection_closure" ("id_ancestor" integer NOT NULL, "id_descendant" integer NOT NULL, CONSTRAINT "PK_9dda38e2273a7744b8f655782a5" PRIMARY KEY ("id_ancestor", "id_descendant"))`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_c309f8cd152bbeaea08491e0c6" ON "vendure"."collection_closure" ("id_ancestor") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_457784c710f8ac9396010441f6" ON "vendure"."collection_closure" ("id_descendant") `, undefined);

          // Step 2.
          // await queryRunner.query(`ALTER TABLE "vendure"."channel" DROP COLUMN "currencyCode"`, undefined);
          // await queryRunner.query(`ALTER TABLE "vendure"."product_variant" DROP COLUMN "stockOnHand"`, undefined);
          // await queryRunner.query(`ALTER TABLE "vendure"."product_variant" DROP COLUMN "stockAllocated"`, undefined);
          // await queryRunner.query(`ALTER TABLE "vendure"."promotion" DROP COLUMN "name"`, undefined);
          // await queryRunner.query(`ALTER TABLE "vendure"."payment_method" DROP COLUMN "name"`, undefined);
          // await queryRunner.query(`ALTER TABLE "vendure"."payment_method" DROP COLUMN "description"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" DROP COLUMN "testEntityId"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" DROP COLUMN "rfqId"`, undefined);


          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "description" character varying DEFAULT ''`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "availableLanguageCodes" text`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "defaultCurrencyCode" character varying`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "availableCurrencyCodes" text`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "trackInventory" boolean NOT NULL DEFAULT true`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "outOfStockThreshold" integer NOT NULL DEFAULT '0'`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD "sellerId" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."collection" ADD "inheritFilters" boolean NOT NULL DEFAULT true`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_price" ADD "currencyCode" character varying`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "quantity" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "orderPlacedQuantity" integer NOT NULL DEFAULT '0'`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "listPriceIncludesTax" boolean`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "adjustments" text`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "taxLines" text`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "sellerChannelId" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "shippingLineId" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "initialListPrice" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "listPrice" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "customFieldstestEntityId" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD "customFieldsRfqid" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order" ADD "type" character varying NOT NULL DEFAULT 'Regular'`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order" ADD "aggregateOrderId" integer`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_price" ALTER COLUMN "channelId" DROP NOT NULL`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" DROP CONSTRAINT "FK_cbcd22193eda94668e84d33f185"`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ALTER COLUMN "productVariantId" SET NOT NULL`, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_00cbe87bc0d4e36758d61bd31d" ON "vendure"."authentication_method" ("userId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_af2116c7e176b6b88dceceeb74" ON "vendure"."channel" ("sellerId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_afe9f917a1c82b9e9e69f7c612" ON "vendure"."channel" ("defaultTaxZoneId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_c9ca2f58d4517460435cbd8b4c" ON "vendure"."channel" ("defaultShippingZoneId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_51da53b26522dc0525762d2de8" ON "vendure"."collection_asset" ("assetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1ed9e48dfbf74b5fcbb35d3d68" ON "vendure"."collection_asset" ("collectionId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_9f9da7d94b0278ea0f7831e1fc" ON "vendure"."collection_translation" ("slug") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_e329f9036210d75caa1d8f2154" ON "vendure"."collection_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_7256fef1bb42f1b38156b7449f" ON "vendure"."collection" ("featuredAssetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_eaea53f44bf9e97790d38a3d68" ON "vendure"."facet_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_3d6e45823b65de808a66cb1423" ON "vendure"."facet_value_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_d101dc2265a7341be3d94968c5" ON "vendure"."facet_value" ("facetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_a79a443c1f7841f3851767faa6" ON "vendure"."product_option_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_a6debf9198e2fbfa006aa10d71" ON "vendure"."product_option" ("groupId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_93751abc1451972c02e033b766" ON "vendure"."product_option_group_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_a6e91739227bf4d442f23c52c7" ON "vendure"."product_option_group" ("productId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_5888ac17b317b93378494a1062" ON "vendure"."product_asset" ("assetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_0d1294f5c22a56da7845ebab72" ON "vendure"."product_asset" ("productId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_f4a2ec16ba86d277b6faa0b67b" ON "vendure"."product_translation" ("slug") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_7dbc75cb4e8b002620c4dbfdac" ON "vendure"."product_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_91a19e6613534949a4ce6e76ff" ON "vendure"."product" ("featuredAssetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_e65ba3882557cab4febb54809b" ON "vendure"."stock_movement" ("productVariantId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_a2fe7172eeae9f1cca86f8f573" ON "vendure"."stock_movement" ("stockLocationId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_d2c8d5fca981cc820131f81aa8" ON "vendure"."stock_movement" ("orderLineId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_10b5a2e3dee0e30b1e26c32f5c" ON "vendure"."product_variant_asset" ("assetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_fa21412afac15a2304f3eb35fe" ON "vendure"."product_variant_asset" ("productVariantId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_e6126cd268aea6e9b31d89af9a" ON "vendure"."product_variant_price" ("variantId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_420f4d6fb75d38b9dca79bc43b" ON "vendure"."product_variant_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_0e6f516053cf982b537836e21c" ON "vendure"."product_variant" ("featuredAssetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_e38dca0d82fd64c7cf8aac8b8e" ON "vendure"."product_variant" ("taxCategoryId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_6e420052844edf3a5506d863ce" ON "vendure"."product_variant" ("productId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_85ec26c71067ebc84adcd98d1a" ON "vendure"."shipping_method_translation" ("baseId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_e2e7642e1e88167c1dfc827fdf" ON "vendure"."shipping_line" ("shippingMethodId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_c9f34a440d490d1b66f6829b86" ON "vendure"."shipping_line" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_6901d8715f5ebadd764466f7bd" ON "vendure"."order_line" ("sellerChannelId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_dc9ac68b47da7b62249886affb" ON "vendure"."order_line" ("shippingLineId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_cbcd22193eda94668e84d33f18" ON "vendure"."order_line" ("productVariantId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_77be94ce9ec650446617946227" ON "vendure"."order_line" ("taxCategoryId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_9f065453910ea77d4be8e92618" ON "vendure"."order_line" ("featuredAssetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_239cfca2a55b98b90b6bef2e44" ON "vendure"."order_line" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1c6932a756108788a361e7d440" ON "vendure"."refund" ("paymentId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_d09d285fe1645cd2f0db811e29" ON "vendure"."payment" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_154eb685f9b629033bd266df7f" ON "vendure"."surcharge" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_a49c5271c39cc8174a0535c808" ON "vendure"."surcharge" ("orderModificationId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1df5bc14a47ef24d2e681f4559" ON "vendure"."order_modification" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_73a78d7df09541ac5eba620d18" ON "vendure"."order" ("aggregateOrderId") `, undefined);
          await queryRunner.query(`CREATE UNIQUE INDEX "IDX_729b3eea7ce540930dbb706949" ON "vendure"."order" ("code") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_124456e637cca7a415897dce65" ON "vendure"."order" ("customerId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_dc34d382b493ade1f70e834c4d" ON "vendure"."address" ("customerId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_d87215343c3a3a67e6a0b7f3ea" ON "vendure"."address" ("countryId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_7a75399a4f4ffa48ee02e98c05" ON "vendure"."session" ("activeOrderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_eb87ef1e234444728138302263" ON "vendure"."session" ("activeChannelId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_3d2f174ef04fb312fdebd0ddc5" ON "vendure"."session" ("userId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_7ee3306d7638aa85ca90d67219" ON "vendure"."tax_rate" ("categoryId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_9872fc7de2f4e532fd3230d191" ON "vendure"."tax_rate" ("zoneId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_8b5ab52fc8887c1a769b9276ca" ON "vendure"."tax_rate" ("customerGroupId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_92f8c334ef06275f9586fd0183" ON "vendure"."history_entry" ("administratorId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_43ac602f839847fdb91101f30e" ON "vendure"."history_entry" ("customerId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_3a05127e67435b4d2332ded7c9" ON "vendure"."history_entry" ("orderId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_660b8fdc28fdef2dcff68cdb8e" ON "vendure"."test_asset" ("assetId") `, undefined);
          await queryRunner.query(`CREATE INDEX "IDX_1ea81c4288d0e5af498543b827" ON "vendure"."rfq_design_file" ("assetId") `, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."region_translation" ADD CONSTRAINT "FK_1afd722b943c81310705fc3e612" FOREIGN KEY ("baseId") REFERENCES "vendure"."region"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."region" ADD CONSTRAINT "FK_ed0c8098ce6809925a437f42aec" FOREIGN KEY ("parentId") REFERENCES "vendure"."region"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."channel" ADD CONSTRAINT "FK_af2116c7e176b6b88dceceeb74b" FOREIGN KEY ("sellerId") REFERENCES "vendure"."seller"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_option_translation" ADD CONSTRAINT "FK_a79a443c1f7841f3851767faa6d" FOREIGN KEY ("baseId") REFERENCES "vendure"."product_option"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_option_group_translation" ADD CONSTRAINT "FK_93751abc1451972c02e033b766c" FOREIGN KEY ("baseId") REFERENCES "vendure"."product_option_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_level" ADD CONSTRAINT "FK_9950eae3180f39c71978748bd08" FOREIGN KEY ("productVariantId") REFERENCES "vendure"."product_variant"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_level" ADD CONSTRAINT "FK_984c48572468c69661a0b7b0494" FOREIGN KEY ("stockLocationId") REFERENCES "vendure"."stock_location"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_movement" ADD CONSTRAINT "FK_a2fe7172eeae9f1cca86f8f573a" FOREIGN KEY ("stockLocationId") REFERENCES "vendure"."stock_location"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_price" ADD CONSTRAINT "FK_e6126cd268aea6e9b31d89af9ab" FOREIGN KEY ("variantId") REFERENCES "vendure"."product_variant"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."product_variant_translation" ADD CONSTRAINT "FK_420f4d6fb75d38b9dca79bc43b4" FOREIGN KEY ("baseId") REFERENCES "vendure"."product_variant"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."shipping_method_translation" ADD CONSTRAINT "FK_85ec26c71067ebc84adcd98d1a5" FOREIGN KEY ("baseId") REFERENCES "vendure"."shipping_method"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."shipping_line" ADD CONSTRAINT "FK_c9f34a440d490d1b66f6829b86c" FOREIGN KEY ("orderId") REFERENCES "vendure"."order"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD CONSTRAINT "FK_6901d8715f5ebadd764466f7bde" FOREIGN KEY ("sellerChannelId") REFERENCES "vendure"."channel"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD CONSTRAINT "FK_dc9ac68b47da7b62249886affba" FOREIGN KEY ("shippingLineId") REFERENCES "vendure"."shipping_line"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD CONSTRAINT "FK_cbcd22193eda94668e84d33f185" FOREIGN KEY ("productVariantId") REFERENCES "vendure"."product_variant"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD CONSTRAINT "FK_c8daf8bcb98d0b8da61edb6503a" FOREIGN KEY ("customFieldstestEntityId") REFERENCES "vendure"."test_entity"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line" ADD CONSTRAINT "FK_5acf3ee1961e3b20d4e0a0e29d5" FOREIGN KEY ("customFieldsRfqid") REFERENCES "vendure"."rfq"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line_reference" ADD CONSTRAINT "FK_7d57857922dfc7303604697dbe9" FOREIGN KEY ("orderLineId") REFERENCES "vendure"."order_line"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line_reference" ADD CONSTRAINT "FK_06b02fb482b188823e419d37bd4" FOREIGN KEY ("fulfillmentId") REFERENCES "vendure"."fulfillment"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line_reference" ADD CONSTRAINT "FK_22b818af8722746fb9f206068c2" FOREIGN KEY ("modificationId") REFERENCES "vendure"."order_modification"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_line_reference" ADD CONSTRAINT "FK_30019aa65b17fe9ee9628931991" FOREIGN KEY ("refundId") REFERENCES "vendure"."refund"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."promotion_translation" ADD CONSTRAINT "FK_1cc009e9ab2263a35544064561b" FOREIGN KEY ("baseId") REFERENCES "vendure"."promotion"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order" ADD CONSTRAINT "FK_73a78d7df09541ac5eba620d181" FOREIGN KEY ("aggregateOrderId") REFERENCES "vendure"."order"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);

          // Moving this line under "vendurev2Migrations(queryRunner)" line to resolve the following issue
          // https://github.com/vendure-ecommerce/v2-migration-tool/issues/2
          // await queryRunner.query(`ALTER TABLE "vendure"."address" ADD CONSTRAINT "FK_d87215343c3a3a67e6a0b7f3ea9" FOREIGN KEY ("countryId") REFERENCES "vendure"."region"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);

          await queryRunner.query(`ALTER TABLE "vendure"."payment_method_translation" ADD CONSTRAINT "FK_66187f782a3e71b9e0f5b50b68b" FOREIGN KEY ("baseId") REFERENCES "vendure"."payment_method"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."zone_members_region" ADD CONSTRAINT "FK_433f45158e4e2b2a2f344714b22" FOREIGN KEY ("zoneId") REFERENCES "vendure"."zone"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."zone_members_region" ADD CONSTRAINT "FK_b45b65256486a15a104e17d495c" FOREIGN KEY ("regionId") REFERENCES "vendure"."region"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_location_channels_channel" ADD CONSTRAINT "FK_39513fd02a573c848d23bee587d" FOREIGN KEY ("stockLocationId") REFERENCES "vendure"."stock_location"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."stock_location_channels_channel" ADD CONSTRAINT "FK_ff8150fe54e56a900d5712671a0" FOREIGN KEY ("channelId") REFERENCES "vendure"."channel"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_fulfillments_fulfillment" ADD CONSTRAINT "FK_f80d84d525af2ffe974e7e8ca29" FOREIGN KEY ("orderId") REFERENCES "vendure"."order"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."order_fulfillments_fulfillment" ADD CONSTRAINT "FK_4add5a5796e1582dec2877b2898" FOREIGN KEY ("fulfillmentId") REFERENCES "vendure"."fulfillment"("id") ON DELETE CASCADE ON UPDATE CASCADE`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."collection_closure" ADD CONSTRAINT "FK_c309f8cd152bbeaea08491e0c66" FOREIGN KEY ("id_ancestor") REFERENCES "vendure"."collection"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
          await queryRunner.query(`ALTER TABLE "vendure"."collection_closure" ADD CONSTRAINT "FK_457784c710f8ac9396010441f6c" FOREIGN KEY ("id_descendant") REFERENCES "vendure"."collection"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);

          // Step 3.
          await vendureV2Migrations(queryRunner);

          await queryRunner.query(`ALTER TABLE "vendure"."address" ADD CONSTRAINT "FK_d87215343c3a3a67e6a0b7f3ea9" FOREIGN KEY ("countryId") REFERENCES "vendure"."region"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);
     }

[v2.0.0] Vendure V2 `mysql` migration wrong `SQL` for customFields type:`relation`

Describe the bug
Vendure V2 mysql migration wrong SQL for customFields type:relation

To Reproduce
Steps to reproduce the behavior:
consider below custom Fields with type: relation

export const productCustomFields: CustomFieldConfig[] = [
 {
    // 当前镜架的镜片流程.
    type: 'relation',
    name: 'lensProcessTemplate',
    nullable: true,
    entity: LensProcessTemplate,
    eager: true,
    public: true,
    label: [
      {
        languageCode: LanguageCode.en,
        value: 'Lens Process Template',
      },
    ],
    description: [
      {
        languageCode: LanguageCode.en,
        value: 'Lens Process Template Configuration',
      },
    ],
  },
]

The migration scripts genrated as below

     await queryRunner.query("ALTER TABLE `product` ADD `customFieldsLensprocesstemplateid` int NULL", undefined);
   

before vendure V2,
the type:relation it will be translate to lensProcessTemplateId for product entity.

after upgarde V2:

The type:relation will required db schema customFieldsLensprocesstemplateid && lensProcessTemplateId at the same time

image

Expected behavior
Should only generated lensProcessTemplateId for customFields type:relation

Environment (please complete the following information):

  • @vendure/core version: 2.0.0
  • Nodejs version: 18+
  • Database (mysql/postgres etc):mysql

Additional context
Add any other context about the problem here.

Error in the vendureV2Migrations script for MySql

Description:
I encountered a syntax error while running the vendureV2Migrations script. The error occurs in the following section of the script:

// Create a default StockLocation
const defaultStockLocationName = "Default Stock Location";
const [{id: defaultStockLocationId}] = await q(
    `INSERT INTO "stock_location" ("createdAt", "updatedAt", "name", "description") 
             VALUES (DEFAULT, DEFAULT, :defaultStockLocationName, '') RETURNING id`,
    {defaultStockLocationName}
);
console.log(
    `Created default StockLocation with id ${defaultStockLocationId}`
);

The error message I received is: "ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RETURNING id' at line 2."

It seems that the RETURNING keyword is not compatible with MySQL. It is commonly used in PostgreSQL, but MySQL does not support it. Could you please provide a MySQL-compatible alternative for this query?
This could be as followed:

// Create a default StockLocation
const defaultStockLocationName = "Default Stock Location";
const [defaultStockLocation] = await queryRunner.query(
    `INSERT INTO stock_location (createdAt, updatedAt, name, description) 
    VALUES (CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(), ?, '')`,
    [defaultStockLocationName]
);

const defaultStockLocationId = defaultStockLocation.insertId;
console.log(`Created default StockLocation with id ${defaultStockLocationId}`);

Thank you!

Postgresql Migration - UUID Strategy Problems

The commented out portion for the uuid strategy in the migration file (step 1) fails due to having the not null constraint.
await queryRunner.query(`ALTER TABLE "stock_movement" ADD "stockLocationId" uuid NOT NULL`);
should be
await queryRunner.query(`ALTER TABLE "stock_movement" ADD "stockLocationId" uuid`);

And the vendureV2Migrations function fails due to "product_variant_price.channelId" having the type "character varying" instead of uuid.

The subquery (SELECT "defaultCurrencyCode" FROM "channel" WHERE "id" = "channelId") needs channel id cast to uuid like (SELECT "defaultCurrencyCode" FROM "channel" WHERE "id" = "channelId"::uuid) when UUIDStrategy is used.

I don't think channelId should really be "character varying", it should probably be a foreign key with the type "uuid", but that isn't relevant to getting the migration to work.

Postgres - Error violation of foreign key constraint Address entity

I want to share my experience using the migration tool. My database environment is PostgreSQL 14, and I had two problems.

First, when we run migrations, the script throws an error regarding FK violations related countryID into "Address" entity, because it is referring Region ID, but we need to add "Country" data into "Region" before creating this PK. Simply put, the value of FOREIGN KEY(address) provided in the ALTER statement is not present in the source (region) table.

So, to solve this problem we add the FK creation after step 3 like this.

// Run the data migrations function
await vendureV2Migrations(queryRunner);

await queryRunner.query(`ALTER TABLE "address" ADD CONSTRAINT "FK_d87215343c3a3a67e6a0b7f3ea9" FOREIGN KEY ("countryId") REFERENCES "region"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined);

Second, in vendureV2Migrations function when set the currencyCode on all ProductVariantePrice entities based on the associated Channel, thows PSQLException: ERROR: operator does not exist: uuid = character varying

await q(
        `UPDATE "product_variant_price" SET "currencyCode" = (SELECT "defaultCurrencyCode" FROM "channel" WHERE "id" = "channelId")`
    );

Instead of putting the string "channelId" in the "WHERE" condition, I put the default channel code condition, but maybe this is not the traversal solution.

I hope this helps.

Best.
Carlo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.