-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(core, medusa, cli): Enable migration scripts #10960
Conversation
🦋 Changeset detectedLatest commit: daac3a5 The changes in this PR will be included in the next version bump. This PR includes changesets to release 65 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
6 Skipped Deployments
|
/snapshot-this |
…sa into feat/run-migration-scripts
/snapshot-this |
🚀 A snapshot release has been made for this PRTest the snapshots by updating your yarn add @medusajs/admin-bundler@2.2.1-snapshot-20250114114841 yarn add @medusajs/admin-sdk@2.2.1-snapshot-20250114114841 yarn add @medusajs/admin-shared@2.2.1-snapshot-20250114114841 yarn add @medusajs/admin-vite-plugin@2.2.1-snapshot-20250114114841 yarn add @medusajs/dashboard@2.2.1-snapshot-20250114114841 yarn add create-medusa-app@2.2.1-snapshot-20250114114841 yarn add @medusajs/cli@2.2.1-snapshot-20250114114841 yarn add medusa-dev-cli@2.2.1-snapshot-20250114114841 yarn add @medusajs/medusa-oas-cli@2.2.1-snapshot-20250114114841 yarn add @medusajs/core-flows@2.2.1-snapshot-20250114114841 yarn add @medusajs/framework@2.2.1-snapshot-20250114114841 yarn add @medusajs/js-sdk@2.2.1-snapshot-20250114114841 yarn add @medusajs/modules-sdk@2.2.1-snapshot-20250114114841 yarn add @medusajs/orchestration@2.2.1-snapshot-20250114114841 yarn add @medusajs/types@2.2.1-snapshot-20250114114841 yarn add @medusajs/utils@2.2.1-snapshot-20250114114841 yarn add @medusajs/workflows-sdk@2.2.1-snapshot-20250114114841 yarn add @medusajs/icons@2.2.1-snapshot-20250114114841 yarn add @medusajs/ui-preset@2.2.1-snapshot-20250114114841 yarn add @medusajs/medusa@2.2.1-snapshot-20250114114841 yarn add @medusajs/telemetry@2.2.1-snapshot-20250114114841 yarn add @medusajs/test-utils@2.2.1-snapshot-20250114114841 yarn add @medusajs/api-key@2.2.1-snapshot-20250114114841 yarn add @medusajs/auth@2.2.1-snapshot-20250114114841 yarn add @medusajs/cache-inmemory@2.2.1-snapshot-20250114114841 yarn add @medusajs/cache-redis@2.2.1-snapshot-20250114114841 yarn add @medusajs/cart@2.2.1-snapshot-20250114114841 yarn add @medusajs/currency@2.2.1-snapshot-20250114114841 yarn add @medusajs/customer@2.2.1-snapshot-20250114114841 yarn add @medusajs/event-bus-local@2.2.1-snapshot-20250114114841 yarn add @medusajs/event-bus-redis@2.2.1-snapshot-20250114114841 yarn add @medusajs/file@2.2.1-snapshot-20250114114841 yarn add @medusajs/fulfillment@2.2.1-snapshot-20250114114841 yarn add @medusajs/index@2.2.1-snapshot-20250114114841 yarn add @medusajs/inventory@2.2.1-snapshot-20250114114841 yarn add @medusajs/link-modules@2.2.1-snapshot-20250114114841 yarn add @medusajs/locking@2.2.1-snapshot-20250114114841 yarn add @medusajs/notification@2.2.1-snapshot-20250114114841 yarn add @medusajs/order@2.2.1-snapshot-20250114114841 yarn add @medusajs/payment@2.2.1-snapshot-20250114114841 yarn add @medusajs/pricing@2.2.1-snapshot-20250114114841 yarn add @medusajs/product@2.2.1-snapshot-20250114114841 yarn add @medusajs/promotion@2.2.1-snapshot-20250114114841 yarn add @medusajs/auth-emailpass@2.2.1-snapshot-20250114114841 yarn add @medusajs/auth-github@2.2.1-snapshot-20250114114841 yarn add @medusajs/auth-google@2.2.1-snapshot-20250114114841 yarn add @medusajs/file-local@2.2.1-snapshot-20250114114841 yarn add @medusajs/file-s3@2.2.1-snapshot-20250114114841 yarn add @medusajs/fulfillment-manual@2.2.1-snapshot-20250114114841 yarn add @medusajs/locking-postgres@2.2.1-snapshot-20250114114841 yarn add @medusajs/locking-redis@2.2.1-snapshot-20250114114841 yarn add @medusajs/notification-local@2.2.1-snapshot-20250114114841 yarn add @medusajs/notification-sendgrid@2.2.1-snapshot-20250114114841 yarn add @medusajs/payment-stripe@2.2.1-snapshot-20250114114841 yarn add @medusajs/region@2.2.1-snapshot-20250114114841 yarn add @medusajs/sales-channel@2.2.1-snapshot-20250114114841 yarn add @medusajs/stock-location@2.2.1-snapshot-20250114114841 yarn add @medusajs/store@2.2.1-snapshot-20250114114841 yarn add @medusajs/tax@2.2.1-snapshot-20250114114841 yarn add @medusajs/user@2.2.1-snapshot-20250114114841 yarn add @medusajs/workflow-engine-inmemory@2.2.1-snapshot-20250114114841 yarn add @medusajs/workflow-engine-redis@2.2.1-snapshot-20250114114841
|
/snapshot-this |
/snapshot-this |
/snapshot-this |
🚀 A snapshot release has been made for this PRTest the snapshots by updating your yarn add @medusajs/admin-bundler@2.2.1-snapshot-20250114140512 yarn add @medusajs/admin-sdk@2.2.1-snapshot-20250114140512 yarn add @medusajs/admin-shared@2.2.1-snapshot-20250114140512 yarn add @medusajs/admin-vite-plugin@2.2.1-snapshot-20250114140512 yarn add @medusajs/dashboard@2.2.1-snapshot-20250114140512 yarn add create-medusa-app@2.2.1-snapshot-20250114140512 yarn add @medusajs/cli@2.2.1-snapshot-20250114140512 yarn add medusa-dev-cli@2.2.1-snapshot-20250114140512 yarn add @medusajs/medusa-oas-cli@2.2.1-snapshot-20250114140512 yarn add @medusajs/core-flows@2.2.1-snapshot-20250114140512 yarn add @medusajs/framework@2.2.1-snapshot-20250114140512 yarn add @medusajs/js-sdk@2.2.1-snapshot-20250114140512 yarn add @medusajs/modules-sdk@2.2.1-snapshot-20250114140512 yarn add @medusajs/orchestration@2.2.1-snapshot-20250114140512 yarn add @medusajs/types@2.2.1-snapshot-20250114140512 yarn add @medusajs/utils@2.2.1-snapshot-20250114140512 yarn add @medusajs/workflows-sdk@2.2.1-snapshot-20250114140512 yarn add @medusajs/icons@2.2.1-snapshot-20250114140512 yarn add @medusajs/ui-preset@2.2.1-snapshot-20250114140512 yarn add @medusajs/medusa@2.2.1-snapshot-20250114140512 yarn add @medusajs/telemetry@2.2.1-snapshot-20250114140512 yarn add @medusajs/test-utils@2.2.1-snapshot-20250114140512 yarn add @medusajs/api-key@2.2.1-snapshot-20250114140512 yarn add @medusajs/auth@2.2.1-snapshot-20250114140512 yarn add @medusajs/cache-inmemory@2.2.1-snapshot-20250114140512 yarn add @medusajs/cache-redis@2.2.1-snapshot-20250114140512 yarn add @medusajs/cart@2.2.1-snapshot-20250114140512 yarn add @medusajs/currency@2.2.1-snapshot-20250114140512 yarn add @medusajs/customer@2.2.1-snapshot-20250114140512 yarn add @medusajs/event-bus-local@2.2.1-snapshot-20250114140512 yarn add @medusajs/event-bus-redis@2.2.1-snapshot-20250114140512 yarn add @medusajs/file@2.2.1-snapshot-20250114140512 yarn add @medusajs/fulfillment@2.2.1-snapshot-20250114140512 yarn add @medusajs/index@2.2.1-snapshot-20250114140512 yarn add @medusajs/inventory@2.2.1-snapshot-20250114140512 yarn add @medusajs/link-modules@2.2.1-snapshot-20250114140512 yarn add @medusajs/locking@2.2.1-snapshot-20250114140512 yarn add @medusajs/notification@2.2.1-snapshot-20250114140512 yarn add @medusajs/order@2.2.1-snapshot-20250114140512 yarn add @medusajs/payment@2.2.1-snapshot-20250114140512 yarn add @medusajs/pricing@2.2.1-snapshot-20250114140512 yarn add @medusajs/product@2.2.1-snapshot-20250114140512 yarn add @medusajs/promotion@2.2.1-snapshot-20250114140512 yarn add @medusajs/auth-emailpass@2.2.1-snapshot-20250114140512 yarn add @medusajs/auth-github@2.2.1-snapshot-20250114140512 yarn add @medusajs/auth-google@2.2.1-snapshot-20250114140512 yarn add @medusajs/file-local@2.2.1-snapshot-20250114140512 yarn add @medusajs/file-s3@2.2.1-snapshot-20250114140512 yarn add @medusajs/fulfillment-manual@2.2.1-snapshot-20250114140512 yarn add @medusajs/locking-postgres@2.2.1-snapshot-20250114140512 yarn add @medusajs/locking-redis@2.2.1-snapshot-20250114140512 yarn add @medusajs/notification-local@2.2.1-snapshot-20250114140512 yarn add @medusajs/notification-sendgrid@2.2.1-snapshot-20250114140512 yarn add @medusajs/payment-stripe@2.2.1-snapshot-20250114140512 yarn add @medusajs/region@2.2.1-snapshot-20250114140512 yarn add @medusajs/sales-channel@2.2.1-snapshot-20250114140512 yarn add @medusajs/stock-location@2.2.1-snapshot-20250114140512 yarn add @medusajs/store@2.2.1-snapshot-20250114140512 yarn add @medusajs/tax@2.2.1-snapshot-20250114140512 yarn add @medusajs/user@2.2.1-snapshot-20250114140512 yarn add @medusajs/workflow-engine-inmemory@2.2.1-snapshot-20250114140512 yarn add @medusajs/workflow-engine-redis@2.2.1-snapshot-20250114140512
|
🚀 A snapshot release has been made for this PRTest the snapshots by updating your yarn add @medusajs/admin-bundler@2.2.1-snapshot-20250114144017 yarn add @medusajs/admin-sdk@2.2.1-snapshot-20250114144017 yarn add @medusajs/admin-shared@2.2.1-snapshot-20250114144017 yarn add @medusajs/admin-vite-plugin@2.2.1-snapshot-20250114144017 yarn add @medusajs/dashboard@2.2.1-snapshot-20250114144017 yarn add create-medusa-app@2.2.1-snapshot-20250114144017 yarn add @medusajs/cli@2.2.1-snapshot-20250114144017 yarn add medusa-dev-cli@2.2.1-snapshot-20250114144017 yarn add @medusajs/medusa-oas-cli@2.2.1-snapshot-20250114144017 yarn add @medusajs/core-flows@2.2.1-snapshot-20250114144017 yarn add @medusajs/framework@2.2.1-snapshot-20250114144017 yarn add @medusajs/js-sdk@2.2.1-snapshot-20250114144017 yarn add @medusajs/modules-sdk@2.2.1-snapshot-20250114144017 yarn add @medusajs/orchestration@2.2.1-snapshot-20250114144017 yarn add @medusajs/types@2.2.1-snapshot-20250114144017 yarn add @medusajs/utils@2.2.1-snapshot-20250114144017 yarn add @medusajs/workflows-sdk@2.2.1-snapshot-20250114144017 yarn add @medusajs/icons@2.2.1-snapshot-20250114144017 yarn add @medusajs/ui-preset@2.2.1-snapshot-20250114144017 yarn add @medusajs/medusa@2.2.1-snapshot-20250114144017 yarn add @medusajs/telemetry@2.2.1-snapshot-20250114144017 yarn add @medusajs/test-utils@2.2.1-snapshot-20250114144017 yarn add @medusajs/api-key@2.2.1-snapshot-20250114144017 yarn add @medusajs/auth@2.2.1-snapshot-20250114144017 yarn add @medusajs/cache-inmemory@2.2.1-snapshot-20250114144017 yarn add @medusajs/cache-redis@2.2.1-snapshot-20250114144017 yarn add @medusajs/cart@2.2.1-snapshot-20250114144017 yarn add @medusajs/currency@2.2.1-snapshot-20250114144017 yarn add @medusajs/customer@2.2.1-snapshot-20250114144017 yarn add @medusajs/event-bus-local@2.2.1-snapshot-20250114144017 yarn add @medusajs/event-bus-redis@2.2.1-snapshot-20250114144017 yarn add @medusajs/file@2.2.1-snapshot-20250114144017 yarn add @medusajs/fulfillment@2.2.1-snapshot-20250114144017 yarn add @medusajs/index@2.2.1-snapshot-20250114144017 yarn add @medusajs/inventory@2.2.1-snapshot-20250114144017 yarn add @medusajs/link-modules@2.2.1-snapshot-20250114144017 yarn add @medusajs/locking@2.2.1-snapshot-20250114144017 yarn add @medusajs/notification@2.2.1-snapshot-20250114144017 yarn add @medusajs/order@2.2.1-snapshot-20250114144017 yarn add @medusajs/payment@2.2.1-snapshot-20250114144017 yarn add @medusajs/pricing@2.2.1-snapshot-20250114144017 yarn add @medusajs/product@2.2.1-snapshot-20250114144017 yarn add @medusajs/promotion@2.2.1-snapshot-20250114144017 yarn add @medusajs/auth-emailpass@2.2.1-snapshot-20250114144017 yarn add @medusajs/auth-github@2.2.1-snapshot-20250114144017 yarn add @medusajs/auth-google@2.2.1-snapshot-20250114144017 yarn add @medusajs/file-local@2.2.1-snapshot-20250114144017 yarn add @medusajs/file-s3@2.2.1-snapshot-20250114144017 yarn add @medusajs/fulfillment-manual@2.2.1-snapshot-20250114144017 yarn add @medusajs/locking-postgres@2.2.1-snapshot-20250114144017 yarn add @medusajs/locking-redis@2.2.1-snapshot-20250114144017 yarn add @medusajs/notification-local@2.2.1-snapshot-20250114144017 yarn add @medusajs/notification-sendgrid@2.2.1-snapshot-20250114144017 yarn add @medusajs/payment-stripe@2.2.1-snapshot-20250114144017 yarn add @medusajs/region@2.2.1-snapshot-20250114144017 yarn add @medusajs/sales-channel@2.2.1-snapshot-20250114144017 yarn add @medusajs/stock-location@2.2.1-snapshot-20250114144017 yarn add @medusajs/store@2.2.1-snapshot-20250114144017 yarn add @medusajs/tax@2.2.1-snapshot-20250114144017 yarn add @medusajs/user@2.2.1-snapshot-20250114144017 yarn add @medusajs/workflow-engine-inmemory@2.2.1-snapshot-20250114144017 yarn add @medusajs/workflow-engine-redis@2.2.1-snapshot-20250114144017
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@shahednasser let me know if I should add more info or anything for the doc if we do the doc :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM
join(dirname(require.resolve("@medusajs/medusa")), "migration-scripts"), | ||
...plugins.map((plugin) => join(plugin.resolve, "migration-scripts")), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comment: I don't love "two-word folders", so we should find a better name, however, I don't have any suggestions myself right now 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anyway, let's merge this now to unblock @fPolic's PR. We can revisit this later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah it is not perfect I agree that it feels strange :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥
Initially, we should focus on documenting how this is used in the core to run cross-module migration scripts, rather than what the user can do with this feature. Both are relevant, but the former is more important, since the scripts from our core will run without the user knowing. |
@adrien2p, feel free to add |
…sa into feat/run-migration-scripts
@olivermrbl I suppose the CLI pipeline is failing but its ok right? |
* feat(core, medusa): Enable migration scripts * spacing * rm unnecessary import * Allow to skip script migration * fix missing options * add options * add tests and small changes * update * add checks * add lock mechanism to be extra safe * Create six-bears-vanish.md * update queries * fix tests --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
* feat(core, medusa): Enable migration scripts * spacing * rm unnecessary import * Allow to skip script migration * fix missing options * add options * add tests and small changes * update * add checks * add lock mechanism to be extra safe * Create six-bears-vanish.md * update queries * fix tests --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
RESOLVES SUP-602
RESOLVES SUP-603
What
Enable the ability to create migration data scripts and execute them as part of the
db:migrate
, also allow to skip running the migration scripts using--skip-scripts
.How
We are looking for any file (except barrel files) inside the
migration-scripts
directory inmedusa
, the userproject
and theplugins
.We expect the files to export a default function as follow
export default function migration1({ container }: { container: MedusaContainer }) => Promise<void>
The migration flow is the following
script_migrations
table exists otherwise create it