-
Notifications
You must be signed in to change notification settings - Fork 0
/
fabfile.py
49 lines (38 loc) · 1.36 KB
/
fabfile.py
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
39
40
41
42
43
44
45
46
47
48
49
from time import time
from fabric import task
@task
def installdb(c, db_name="bpp", fn="dump.psql"):
c.local(f"/opt/local/bin/dropdb -U postgres {db_name} || true")
c.local(f"/opt/local/bin/pg_restore -U postgres -j 6 -C -d template1 {fn}")
c.local(f"python src/manage.py migrate")
@task
def getdb(c, db_name="bpp", fn="dump.psql"):
c.sudo(f"pg_dump -Fc {db_name} > /tmp/{fn}", user="postgres")
c.get(f"/tmp/{fn}")
c.run(f"rm /tmp/{fn}")
installdb(c, db_name, fn)
@task
def putdb(c, db_name="bpp", fn="dump.psql"):
c.local(f"/opt/local/bin/pg_dump -U postgres -Fc {db_name} > /tmp/{fn}")
c.put(f"/tmp/{fn}")
c.sudo(f"supervisorctl stop all")
c.sudo(f"pg_dump -Fc {db_name} > backup-{time()}.fabfile.sql", user="postgres")
c.sudo(f"dropdb {db_name}", user="postgres")
c.sudo(f"pg_restore -j 6 -C -d template1 {fn}", user="postgres")
c.sudo(f"supervisorctl start all")
c.local(f"rm /tmp/{fn}")
@task
def recreate_venv(c, user_name="bpp"):
c.sudo(
f"cd /home/{user_name} && rm -rf env", user=user_name, pty=True,
)
c.sudo(
f"cd /home/{user_name} && virtualenv env -p/usr/bin/python3",
user=user_name,
pty=True,
)
c.sudo(
f"cd /home/{user_name} && source env/bin/activate && pip install --upgrade --pre bpp-iplweb",
user=user_name,
pty=True,
)