Guides

Storing data in a database

Out of the box, Cargo stores all of its data in flat files. However, you can opt to store some (or all) of your data in a traditional database instead.

Migrating

To get started, run the following command:

php please cargo:database

You'll be presented with a list of repositories to choose from. Select the ones you'd like to migrate, and Cargo will publish the necessary migrations, run them, and update your config file.

If you'd like to migrate all repositories at once, you may use the --all flag:

php please cargo:database --all

The available repositories are:

Repository Config Key Docs
Carts statamic.cargo.carts.driver Carts
Discounts statamic.cargo.discounts.driver Discounts
Orders statamic.cargo.orders.driver Orders
Tax Classes statamic.cargo.taxes.tax_classes.driver Taxes
Tax Zones statamic.cargo.taxes.tax_zones.driver Taxes

Products are stored as entries, so you can use the official Eloquent Driver to move them to the database.

Customers are Statamic users, so can be moved to the database by following this guide on the Statamic docs.

Importing Existing Data

During the migration process, you'll be asked if you'd like to import existing data from flat files into the database. If you'd prefer to skip the prompt, you can pass the --import flag:

php please cargo:database --all --import

Customizing Models & Tables

Each repository allows you to customize the Eloquent model and database table used. You can do this by updating the relevant keys in your cargo.php config file. See the individual docs pages for more details.