2016-12-27 08:38:21 +00:00
|
|
|
# Rocket Todo Example
|
2016-08-02 02:07:36 +00:00
|
|
|
|
2016-12-27 08:38:21 +00:00
|
|
|
This example makes use of a SQLite database via `diesel` to store todo tasks. As
|
|
|
|
a result, you'll need to have `sqlite3` and its headers installed:
|
2016-08-02 03:01:47 +00:00
|
|
|
|
2016-12-27 08:38:21 +00:00
|
|
|
* **OS X:** `brew install sqlite`
|
|
|
|
* **Debian/Ubuntu:** `apt-get install libsqlite3-dev`
|
|
|
|
* **Arch:** `pacman -S sqlite`
|
2016-08-02 03:01:47 +00:00
|
|
|
|
2017-02-02 23:02:32 +00:00
|
|
|
## Running
|
2016-12-27 08:38:21 +00:00
|
|
|
|
2017-02-02 23:02:32 +00:00
|
|
|
**Before running, building, or testing this example, you'll need to ensure the
|
|
|
|
following:**
|
2016-12-27 08:38:21 +00:00
|
|
|
|
2017-02-02 23:02:32 +00:00
|
|
|
1. A SQLite database file with the proper schema is present.
|
2016-08-02 03:01:47 +00:00
|
|
|
|
2017-08-13 01:47:58 +00:00
|
|
|
On a Unix machine or with bash installed, you can simply run the
|
|
|
|
`boostrap.sh` script to create the database. The script installs the
|
|
|
|
`diesel_cli` tools if they're not already installed and runs the
|
|
|
|
migrations. The script will output a `DATABASE_URL` variable.
|
2016-08-02 03:01:47 +00:00
|
|
|
|
2017-08-13 01:47:58 +00:00
|
|
|
You can also install the Diesel CLI and run the migrations manually with
|
|
|
|
the following commands:
|
2017-02-02 23:02:32 +00:00
|
|
|
|
2017-08-13 01:47:58 +00:00
|
|
|
```
|
|
|
|
# install Diesel CLI tools
|
|
|
|
cargo install diesel_cli --no-default-features --features sqlite
|
|
|
|
|
|
|
|
# create db/db.sql
|
|
|
|
DATABASE_URL=db/db.sql diesel migration run
|
|
|
|
```
|
2017-02-02 23:02:32 +00:00
|
|
|
|
|
|
|
2. A `DATABASE_URL` environment variable is set that points to the SQLite
|
|
|
|
database file.
|
|
|
|
|
|
|
|
Use the `DATABASE_URL` variable emitted from the `bootstrap.sh` script, or
|
|
|
|
enter it manually, as follows:
|
2017-02-02 08:41:47 +00:00
|
|
|
|
2017-02-02 23:02:32 +00:00
|
|
|
* `DATABASE_URL=db/db.sql cargo build`
|
|
|
|
* `DATABASE_URL=db/db.sql cargo test`
|
|
|
|
* `DATABASE_URL=db/db.sql cargo run`
|