Add docs for establishing main app DB
This commit is contained in:
parent
6285ba3cc8
commit
1660774ad2
|
@ -56,6 +56,7 @@ Table of Contents
|
||||||
start-docs
|
start-docs
|
||||||
configure
|
configure
|
||||||
pkg-release
|
pkg-release
|
||||||
|
make-db
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
|
85
docs/make-db.rst
Normal file
85
docs/make-db.rst
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
|
||||||
|
.. 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.
|
Loading…
Reference in a new issue