86 lines
2.6 KiB
ReStructuredText
86 lines
2.6 KiB
ReStructuredText
|
|
|||
|
.. highlight:: sh
|
|||
|
|
|||
|
Establish Main App Database
|
|||
|
===========================
|
|||
|
|
|||
|
Now that you have a hang of how to use the Rattail-style command line
|
|||
|
(somewhat), let's move on to the database.
|
|||
|
|
|||
|
The main reason to wait until now to add a DB to the mix, was simply to show
|
|||
|
that the "core" of Rattail does not need a DB. However in practice there *are*
|
|||
|
definitely some commands which Rattail comes with out of the box, and which
|
|||
|
also would require one or even multiple databases to be present.
|
|||
|
|
|||
|
|
|||
|
Create User for PostgreSQL
|
|||
|
--------------------------
|
|||
|
|
|||
|
Before we make our database, let's first establish a user account within
|
|||
|
Postgres, which we will designate as the "owner" of our database(s).
|
|||
|
|
|||
|
It is convention within Rattail, to create a PG user named "rattail" for this
|
|||
|
purpose. You are free to use another name if you prefer::
|
|||
|
|
|||
|
sudo -u postgres createuser --no-createdb --no-createrole --no-superuser rattail
|
|||
|
|
|||
|
You also should declare a password for the user::
|
|||
|
|
|||
|
sudo -u postgres psql -c "alter user rattail password 'newpassword'"
|
|||
|
|
|||
|
|
|||
|
Create Database
|
|||
|
---------------
|
|||
|
|
|||
|
Now that we know who to use as the "owner" we will create a new Postgres
|
|||
|
database::
|
|||
|
|
|||
|
sudo -u postgres createdb --owner rattail rattut
|
|||
|
|
|||
|
Of course we named our database "rattut" here only because we're assuming this
|
|||
|
tutorial project is the app, but your name may be different.
|
|||
|
|
|||
|
At this point you should update your ``app/rattail.conf`` file to reflect your
|
|||
|
chosen database name and user credentials:
|
|||
|
|
|||
|
.. code-block:: ini
|
|||
|
|
|||
|
[rattail.db]
|
|||
|
default.url = postgresql://rattail:newpassword@localhost/rattut
|
|||
|
|
|||
|
|
|||
|
Install DB Schema
|
|||
|
-----------------
|
|||
|
|
|||
|
So you have a DB but it’s empty; you can confirm that with::
|
|||
|
|
|||
|
sudo -u postgres psql -c '\d' rattut
|
|||
|
|
|||
|
But we'll fix that now. Schema is managed entirely via Alembic "version"
|
|||
|
scripts, so to install the schema we merely run all the scripts::
|
|||
|
|
|||
|
cdvirtualenv
|
|||
|
bin/alembic -c app/rattail.conf upgrade heads
|
|||
|
|
|||
|
(Note that you must use ``rattail.conf`` for that; ``quiet.conf`` won't work.)
|
|||
|
|
|||
|
If you check the DB again you should see a good amount of tables.
|
|||
|
|
|||
|
|
|||
|
Create Admin User in DB
|
|||
|
-----------------------
|
|||
|
|
|||
|
We include this here not so much because you *need* an admin user in your DB at
|
|||
|
this point (although you will for the web app), but rather just to confirm that
|
|||
|
everything is setup correctly thus far.
|
|||
|
|
|||
|
You currently should have no users in your DB::
|
|||
|
|
|||
|
sudo -u postgres psql -c 'select * from "user"' rattut
|
|||
|
|
|||
|
Okay then let's make an admin user for you::
|
|||
|
|
|||
|
bin/rattail -c app/quiet.conf make-user --admin myusername
|
|||
|
|
|||
|
Now if you query the ``user`` table again you should see your new account.
|