1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
SHELL_ENV = DJANGO_SETTINGS_MODULE=$(DJANGO_SETTINGS_MODULE) PYTHONPATH=$(PYTHONPATH)
PGNAME = $(shell $(SHELL_ENV) $(PYTHON) -c "from django.conf import settings; print(settings.DATABASES['default']['NAME'])")
PGHOST = $(shell $(SHELL_ENV) $(PYTHON) -c "from django.conf import settings; print(settings.DATABASES['default']['HOST'])")
PGUSER = $(shell $(SHELL_ENV) $(PYTHON) -c "from django.conf import settings; print(settings.DATABASES['default']['USER'])")
DATA_DIR = $(PGHOST)/data
LOG_FILE = $(PGHOST)/postgresql.log
CONF_FILE = $(DATA_DIR)/postgresql.conf
PGBIN = /usr/lib/postgresql/9.5/bin
PGCTL = $(PGBIN)/pg_ctl
PGINIT = $(PGBIN)/initdb
migrate:
$(DJANGO_MANAGE) migrate --noinput
setup-db:
mkdir -p $(DATA_DIR)
$(PGINIT) -A trust -D $(DATA_DIR)
echo "fsync = off" >> $(CONF_FILE)
echo "standard_conforming_strings = off" >> $(CONF_FILE)
echo "escape_string_warning = off" >> $(CONF_FILE)
$(PGCTL) start -w -D $(DATA_DIR) -l $(LOG_FILE) -o "-F -k $(PGHOST) -h ''"
PGHOST=$(PGHOST) createdb $(PGNAME)
PGHOST=$(PGHOST) createuser --superuser --createdb $(PGUSER)
start-db:
$(MAKE) setup-db
$(MAKE) migrate
stop-db:
PGHOST=$(PGHOST) dropdb $(PGNAME)
$(PGCTL) stop -w -D $(DATA_DIR) -m smart
rm -rf $(PGHOST)
reset-db:
PGHOST=$(PGHOST) dropdb $(PGNAME)
PGHOST=$(PGHOST) createdb $(PGNAME)
$(MAKE) migrate
|