Before we will be able to implement the API handler for accepting new tasks, we need to define a single location for storing them. This way both handlers will have access to the same data location. In other words, we need a database.
Let's open the config/default.json
and define the name of our database under the db
key.
{
"db": {
"database": "acme"
},
// ...
}
Now, we need to start the database engine. There are several ways to do that depending on the platform. Check the PostgreSQL documentation for details. By default, the PostgreSQL RDBM will start on the port 5432
and Kretes will automatically connect to it. If there is no database engine running, Kretes will print an error, but start anyway; you will be able to continue developing the app, but without the access to the database.
Once the PostgreSQL is started, run kretes database create
to create a database with the name as defined in config/default.json
.
Now we need to define the shape of data in our database. As we only have tasks at the moment, there will be just one table. Put the following content in db/setup.sql
create table task (
id serial primary key,
name text,
done boolean default false
);
insert into task (name) values
('Learn React.js'),
('Create your first API using TypeScript'),
('Master the Kretes framework');
Then, run the database setup method:
kretes database setup
You can test if the data was correctly added to the database with psql
that comes with the PostgreSQL installation. Point it to your database (acme
in our case)
psql acme
and run a SQL query on the task
table:
select * from task;
Found a mistake?Found a mistake? Would you like to suggest an improvement?