feat: add pkg extras for postgres, mysql; update install doc

no longer requires psycopg2 by default; use postgres extra
This commit is contained in:
Lance Edgar 2025-01-26 17:50:00 -06:00
parent a14b97243c
commit d8c834095b
2 changed files with 28 additions and 11 deletions

View file

@ -8,22 +8,34 @@ Prerequisites
------------- -------------
You'll need Python >= 3.8, and a database. See also You'll need Python >= 3.8, and a database. See also
:doc:`wuttjamaican:narr/install/prereqs` in the Wutta docs. the Wutta docs:
* :doc:`wuttjamaican:narr/install/prereqs`
* :ref:`wuttjamaican:create-appdb`
But for convenience here is a cheat sheet:
*PostgreSQL*
.. code-block:: sh .. code-block:: sh
sudo apt install build-essential python3-dev python3-venv postgresql libpq-dev sudo apt install build-essential python3-dev python3-venv postgresql libpq-dev
As for the database, see also :ref:`wuttjamaican:create-appdb` but FYI
these docs will assume a PostgreSQL setup with ``sideshow`` as the DB
name (and PG username).
.. code-block:: sh
sudo -u postgres createuser sideshow sudo -u postgres createuser sideshow
sudo -u postgres psql -c "ALTER USER sideshow PASSWORD 'mypassword'" sudo -u postgres psql -c "ALTER USER sideshow PASSWORD 'mypassword'"
sudo -u postgres createdb -O sideshow sideshow sudo -u postgres createdb -O sideshow sideshow
*MySQL*
.. code-block:: sh
sudo apt install build-essential python3-dev python3-venv default-mysql-server
sudo mysql -e "CREATE USER sideshow@localhost"
sudo mysql -e "ALTER USER sideshow@localhost IDENTIFIED BY 'mypassword'"
sudo mysqladmin create sideshow
sudo mysql -e "GRANT ALL ON sideshow.* TO sideshow@localhost"
Virtual Environment Virtual Environment
------------------- -------------------
@ -49,12 +61,16 @@ the folder ownership should be changed to whatever you need:
Install Sideshow Install Sideshow
---------------- ----------------
First install the Sideshow package to your virtual environment: First install the Sideshow package to your virtual environment. Note
that you must specify which DB backend to use:
.. code-block:: sh .. code-block:: sh
cd /srv/envs/sideshow # postgres
bin/pip install Sideshow bin/pip install Sideshow[postgres]
# mysql
bin/pip install Sideshow[mysql]
Then you can run the Sideshow installer: Then you can run the Sideshow installer:

View file

@ -32,11 +32,12 @@ classifiers = [
license = {text = "GNU General Public License v3+"} license = {text = "GNU General Public License v3+"}
requires-python = ">= 3.8" requires-python = ">= 3.8"
dependencies = [ dependencies = [
"psycopg2",
"WuttaWeb>=0.20.5", "WuttaWeb>=0.20.5",
] ]
[project.optional-dependencies] [project.optional-dependencies]
postgres = ["psycopg2"]
mysql = ["mysql-connector-python"]
docs = ["Sphinx", "furo", "sphinxcontrib-programoutput", "enum-tools[sphinx]"] docs = ["Sphinx", "furo", "sphinxcontrib-programoutput", "enum-tools[sphinx]"]
tests = ["pytest-cov", "tox"] tests = ["pytest-cov", "tox"]