2019-08-17 03:47:46 -05:00
|
|
|
|
|
|
|
|
|
.. 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.
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 18:54:04 -05:00
|
|
|
|
.. _make-user:
|
|
|
|
|
|
2019-08-17 03:47:46 -05:00
|
|
|
|
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.
|