Local Installation
Install dependencies, e.g. via brew.
brew install postgresql memcached libmemcached npm
Register postgresql as a service
brew services start postgresql
Clone this repository:
git clone https://github.com/ghga-de/datameta.git
Change directory into your newly created project if not already there. Your current directory should be the same as this README.md file and setup.py.
cd datameta
Create a Python virtual environment, if not already created.
This can be done via venv
:
python3 -m venv <environment_name>
or conda
:
conda create -y -n <environment_name> 'python>3'
Activate the environment
With venv
(docs):
source <path/to/environment>/bin/activate
With conda
conda activate <environment_name>
Upgrade packaging tools, if necessary.
pip install --upgrade pip setuptools
Install NPM dependencies
npm install --prefix datameta/static/
Install the project in editable mode with its testing requirements.
pip install -e ".[testing]"
Create a postgresql database, then add the path to the database to the development.ini
found in datameta/config
,
e.g. sqlalchemy.url = postgresql://localhost/<dbname>
. A copy of the development.ini
can be placed at an arbitrary location
named /path/to/config/
in the following.
createdb <dbname>
Initialize the database using Alembic.
<path/to/environment>/bin/alembic -c <path/to/config>/development.ini upgrade head
Load default data into the database using a script. Change the initial user and group information to your requirements.
<path/to/environment>/bin/initialize_datameta_db \
-c <path/to/config>/development.ini \
--initial-user-fullname "First User Fullname" \
--initial-user-email "first@user.email" \
--initial-user-pass "initialPassword" \
--initial-group "My Organization"
Run your project’s tests.
<path/to/environment>/bin/pytest
Start the memcached
process.
nohup memcached &
Run your project.
<path/to/environment>/bin/pserve /path/to/config/development.ini