Make Post Sell
==============
The `Make Post Sell <https://www.makepostsell.com>`_ monolith platform service.
Getting Started
---------------
Clone this repo and change your working directory to the checkout.
Create a Python virtual environment and install project dependencies:
.. code-block:: bash
make dev
Load schema and default data into the database using a script,
we currently use sqlite3 as a development and test database:
.. code-block:: bash
make init_db config=development.ini
Run a web application server with the project loaded:
.. code-block:: bash
make serve
Open a 2nd shell and run a test SMTP server for intercepting OTP login uri's:
.. code-block:: bash
make smtp
In a web browser navagate to http://127.0.0.1:6501/ and you should see the app.
Running Tests
-------------
We currently use `pytest`:
.. code-block:: bash
make test
SQL Migrations
===============
If your deployment is brand new, you don't need to run any migrations.
You should however run this to stamp the database as ready:
.. code-block:: bash
alembic -c development.ini stamp head
Otherwise, it should be safe to run this at anytime to catch your database up:
.. code-block:: bash
alembic -c development.ini upgrade head
To look at the current revision and the history run these:
.. code-block:: bash
alembic -c development.ini history
alembic -c development.ini current
If you ever want to cut a new migration script, you can run this:
.. code-block:: bash
alembic -c development.ini revision -m "Added email_id column to User table."
Then you can edit / modify the generated ``.py`` file with your changes.
You can also autogenerate a new migration script using `--autogenerate`.
Alembic will prepare a migration script by comparing the state of the
database with the state of the model:
.. code-block:: bash
alembic -c development.ini revision --autogenerate -m "autogenerated indicies."
You should review the recommended migration script before `upgrade`.
misc
====
You may source the new Python virtual environment during development:
.. code-block:: bash
# source env/bin/activate.fish
. env/bin/activate