PostgreSQL¶
PostgreSQL is the default database used in the INNUENDO Platform for data storage. It needs to be installed in the same machine as the Frontend server or configured in such a way that the Frontend server can access to it.
Installation¶
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Create Postgres User¶
Enter with the default “postgres” user and create a new user to be used in the Platform. Change the version according to the installed postgres version. Is recommended to use postgres version < 10.
sudo -u postgres /usr/lib/postgresql/9.X/bin/createuser innuendo
Create the Database¶
Launch psql with the default postgres user.
sudo -u postgres psql postgres
Inside psql, set a password for the default postgres user.
postgres=# \password postgres
Change the permissions of the previously created user to allow the creation of databases.
postgres=# ALTER USER innuendo CREATEDB;
Create the innuendo database.
postgres=# CREATE DATABASE innuendo OWNER innuendo;
Exit psql.
postgres=# \q
Change Configuration file¶
Locate the postgreSQL pg_hba.conf file. It has all the information regarding access security to the database. It is required to change some of the parameters.
The file should be at /etc/postgresql/9.X/main/
Open it and replace all the METHOD column to trust
Restart postgreSQL.
sudo service postgresql restart
Set password for the INNUENDO user¶
Launch psql with the created user.
sudo -u innuendo psql innuendo
Inside psql, set a password for the innuendo user.
postgres=# \password innuendo
Exit psql.
postgres=# \q
Change Configuration file (AGAIN)¶
Open the pg_hba.conf file and replace all METHOD column to md5.
Restart postgreSQL.
sudo service postgresql restart
Create/Load the database structure¶
Now you can load the database structure using a set of commands defined by the Flask-Migrate package. It should be available after installing the Frontend server and all its dependencies.
Inside de INNUENDO_REST_API folder run.
# Initialize the database and build a migrations directory
./manage.py db init --multidb
# Sets the new version of the database
./manage.py db migrate
# Recreates the database with the newest version
./manage.py db upgrade