Files
medusa-store/www/apps/resources/app/medusa-cli/page.mdx
Shahed Nasser a74c900ab1 docs: add documentation for migration generate cli tool (#8128)
* docs: add documentation for migration generate cli tool

* changed migrations details in marketplace recipe

* added generated oas files to action

* vale + lint fixes

* don't import from src in medusa-config.js

* fix generate command in recipe

* fix module name
2024-07-15 17:46:10 +02:00

769 lines
14 KiB
Plaintext

import { Table } from "docs-ui"
export const metadata = {
title: `Medusa CLI Tool`,
}
# {metadata.title}
The Medusa CLI tool provides commands that facilitate your development.
<Note type="check">
- [Node.js v16+](https://nodejs.org/en/download)
- [Git CLI tool](https://git-scm.com/downloads)
</Note>
## Usage
In your Medusa application's directory, you can use the Medusa CLI tool using NPX.
For example:
```bash
npx medusa --help
```
---
## Commands
### new
Create a new Medusa application. Unlike the `create-medusa-app` CLI tool, this command provides more flexibility for experienced Medusa developers in creating and configuring their project.
```bash
medusa new [<dir_name> [<starter_url>]]
```
#### Arguments
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Argument</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`dir_name`
</Table.Cell>
<Table.Cell>
The name of the directory to create the Medusa application in.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
<Table.Cell>
\-
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`starter_url`
</Table.Cell>
<Table.Cell>
The name of the directory to create the Medusa application in.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
<Table.Cell>
`https://github.com/medusajs/medusa-starter-default`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-y`, `--useDefaults`
</Table.Cell>
<Table.Cell>
Skip all prompts, such as databaes prompts. A database might not be created if default PostgreSQL credentials don't work.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--skip-db`
</Table.Cell>
<Table.Cell>
Skip database creation.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--skip-env`
</Table.Cell>
<Table.Cell>
Skip populating `.env`.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--db-user <user>`
</Table.Cell>
<Table.Cell>
The database user to use for database setup.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--db-database <database>`
</Table.Cell>
<Table.Cell>
The name of the database used for database setup.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--db-pass <password>`
</Table.Cell>
<Table.Cell>
The database password to use for database setup.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--db-port <port>`
</Table.Cell>
<Table.Cell>
The database port to use for database setup.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--db-host <host>`
</Table.Cell>
<Table.Cell>
The database host to use for database setup.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--v2`
</Table.Cell>
<Table.Cell>
Installs Medusa v2, which is still not ready for production.
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### develop
Start Medusa application in development. This command watches files for any changes, then rebuilds the files and restarts the Medusa application.
```bash
npx medusa develop
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-H <host>`, `--host <host>`
</Table.Cell>
<Table.Cell>
Set host of the Medusa server.
</Table.Cell>
<Table.Cell>
`localhost`
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-p <port>`, `--port <port>`
</Table.Cell>
<Table.Cell>
Set port of the Medusa server.
</Table.Cell>
<Table.Cell>
`9000`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### start
Start the Medusa application in production.
```bash
npx medusa start
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-H <host>`, `--host <host>`
</Table.Cell>
<Table.Cell>
Set host of the Medusa server.
</Table.Cell>
<Table.Cell>
`localhost`
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-p <port>`, `--port <port>`
</Table.Cell>
<Table.Cell>
Set port of the Medusa server.
</Table.Cell>
<Table.Cell>
`9000`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### migrations run
Run the latest migrations to reflect changes on the database.
```bash
npx medusa migrations run
```
### migrations revert
Revert the last migrations ran on one or more modules.
```bash
npx medusa migrations revert <module_names...>
```
#### Arguments
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Argument</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`module_names`
</Table.Cell>
<Table.Cell>
The name of one or more module (separated by spaces) to rever their migrations. For example, `helloModuleService`.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### migrations generate
Generate a migration file for the latest changes in one or more modules.
```bash
npx medusa migrations generate <module_names...>
```
#### Arguments
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Argument</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`module_names`
</Table.Cell>
<Table.Cell>
The name of one or more module (separated by spaces) to generate migrations for. For example, `helloModuleService`.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### seed
Runs latest migrations and populates the database with data from a provided JSON file.
```bash
npx medusa seed --seed-file=<file_path>
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-f=<file_path>`, `--seed-file=<file_path>`
</Table.Cell>
<Table.Cell>
Path to the file holding the data to seed.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
<Table.Cell>
\-
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-m=<value>`, `--migrate=<value>`
</Table.Cell>
<Table.Cell>
Whether to run migrations before seeding the database.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
<Table.Cell>
`true`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### user
Create a new admin user.
```bash
npx medusa user --email <email> [--password <password>]
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-e <email>`, `--email <email>`
</Table.Cell>
<Table.Cell>
The user's email.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
<Table.Cell>
\-
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-p <password>`, `--password <password>`
</Table.Cell>
<Table.Cell>
The user's password.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
<Table.Cell>
\-
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-i <id>`, `--id <id>`
</Table.Cell>
<Table.Cell>
The user's ID.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
<Table.Cell>
An automatically generated ID.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--invite`
</Table.Cell>
<Table.Cell>
Whether to create an invite instead of a user. When using this option, you don't need to specify a password.
If ran successfully, you'll receive the invite token in the output.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
<Table.Cell>
`false`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### exec
Run a custom CLI script. Learn more about it in [this guide](!docs!/advanced-development/custom-cli-scripts).
```bash
npx medusa exec [file] [args...]
```
#### Arguments
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Argument</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Required</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`file`
</Table.Cell>
<Table.Cell>
The path to the TypeScript or JavaScript file holding the function to execute.
</Table.Cell>
<Table.Cell>
Yes
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`args`
</Table.Cell>
<Table.Cell>
A list of arguments to pass to the function. These arguments are passed in the `args` property of the function's object parameter.
</Table.Cell>
<Table.Cell>
No
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### start-cluster
Starts the Medusa application in [cluster mode](https://expressjs.com/en/advanced/best-practice-performance.html#run-your-app-in-a-cluster). Running in cluster mode significantly improves performance as the workload and tasks are distributed among all available instances instead of a single one.
```bash
npx medusa start-cluster
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
<Table.HeaderCell>Default</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`-c <number>`, `--cpus <number>`
</Table.Cell>
<Table.Cell>
The number of CPUs that Medusa can consume.
</Table.Cell>
<Table.Cell>
Medusa will try to consume all CPUs.
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-H <host>`, `--host <host>`
</Table.Cell>
<Table.Cell>
Set host of the Medusa server.
</Table.Cell>
<Table.Cell>
`localhost`
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`-p <port>`, `--port <port>`
</Table.Cell>
<Table.Cell>
Set port of the Medusa server.
</Table.Cell>
<Table.Cell>
`9000`
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>
### telemetry
Enable or disable the collection of anonymous data usage. If no option is provided, the command enables the collection of anonymous data usage.
```bash
npx medusa telemetry
```
#### Options
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Option</Table.HeaderCell>
<Table.HeaderCell>Description</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.Cell>
`--enable`
</Table.Cell>
<Table.Cell>
Enable telemetry (default).
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
`--disable`
</Table.Cell>
<Table.Cell>
Disable telemetry.
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>