diff --git a/README.md b/README.md index 113c22a..f091533 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,15 @@ * start postgres * create postgres user * `$ sudo su postgres` - * `$ createuser --interactive` -> owl + * `$ createuser --interactive` -> "owl" role with relevant priviledges +* create postgres database "matcher" + * `$ psql -U postgres` + * `> CREATE DATABASE matcher;` + * `> ALTER DATABASE matcher OWNER TO owl;` * create the db tables + * TODO find out where credentials are stored + * setup credentials in default.py + * `$ python create_db.py` * setup a venv * enter the venv, e.g. in pycharm * `$ pip install -r requirements.txt` diff --git a/create_db.py b/create_db.py new file mode 100755 index 0000000..2c1c6f9 --- /dev/null +++ b/create_db.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +from sqlalchemy.schema import CreateIndex, CreateTable + +from matcher import database, model + +DB_URL = "postgresql:///matcher" +database.init_db(DB_URL) + + +def create_db(): + model.Base.metadata.create_all(database.session.get_bind()) + + +def print_create_table(classes): + database.init_db(DB_URL) + + engine = database.session.get_bind() + + for cls in classes: + sql = str(CreateTable(cls.__table__).compile(engine)) + print(sql.strip() + ";") + + for index in cls.__table__.indexes: + sql = str(CreateIndex(index).compile(engine)) + print(sql.strip() + ";") + + +# print_create_table([model.ItemIsA]) +# print_create_table([model.EditSession]) +# print_create_table([model.Changeset, model.ChangesetEdit, model.SkipIsA]) +# print_create_table([model.User]) +# print_create_table([model.Extract]) + +create_db()