# [Usage](../../../usage.md) > Framework update

Use `kfw:update` when the package is installed, updated, or deployed. Unlike targeted commands, it runs the full update workflow in order — migrations, asset publishing, config synchronization, and optimization.

---

## Method

### `php artisan kfw:update`

#### Arguments

None.

#### What it does

- Runs `migrate` to create or update `kfw_*` tables (roles, users profile, API credentials, notifications).
- Calls `kfw:publish` to publish assets and configs and refresh compiled bundles.
- Calls `kfw:configs-update` to add newly introduced config keys while preserving local values.
- Calls `optimize` to rebuild Laravel optimization caches.
- Prints progress lines for each stage.

---

## Output

Console lines for migrations, publishing, config synchronization, and completion. No return value beyond the standard command exit code.

---

## Example

```bash
php artisan kfw:update
```

Run after every `composer install` / `composer update` of the package, on deploy to a new environment, or after pulling a version with new config keys, assets, or migrations.

## See also

- [Usage](../../../usage.md)
- [Framework publish](kfw_publish.md) — asset and config publishing stage
- [Framework configs update](kfw_configs_update.md) — config key synchronization stage
- [Framework remigrate](kfw_remigrate.md) — forced re-run of framework migrations
- [Installation](../../../installation.md) — when to run the full update
