~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to database/schema/Makefile

  • Committer: Guilherme Salgado
  • Date: 2008-11-11 17:30:32 UTC
  • mto: This revision was merged to the branch mainline in revision 7286.
  • Revision ID: salgado@canonical.com-20081111173032-oa70mu51ym356b8n
A few cleanups here and there.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
EMPTY_DBNAME=launchpad_empty
28
28
TEST_SESSION_DBNAME=session_ftest
29
29
 
30
 
# The database which is a copy of launchpad_ftest_template but can be accessed
31
 
# via http://launchpad.test
 
30
# The database which is a copy of launchpad_ftest_template and can be accessed
 
31
# via http://launchpad.dev when you use LPCONFIG=test-playground
32
32
TEST_PLAYGROUND_DBNAME=launchpad_ftest_playground
33
33
 
34
34
# The session database name.
39
39
# The command we use to create a database
40
40
CREATEDB=${PYTHON} ../../utilities/pgcreate.py
41
41
 
 
42
# The command used (in conjunction with $(call)) to dump the contents of the
 
43
# given database ($1) into an SQL file ($2).
42
44
build_new_sampledata=$(PYTHON) fti.py --null -d ${1} -q; \
43
 
        pg_dump --schema=public --disable-triggers -a -D -O -d ${1} \
44
 
        | grep -v "\( TOC \|INSERT INTO launchpaddatabaserevision \|sessiondata\|sessionpkgdata\|SELECT pg_catalog\.setval\|^--\| fticache \|'fticache'\|ALTER TABLE secret\|INSERT INTO secret\)" \
45
 
        | $(PYTHON) sort_sql.py > $(2); \
46
 
        $(PYTHON) fti.py --force -d ${1} -q
 
45
    pg_dump --schema=public --disable-triggers -a -D -O -d ${1} \
 
46
    | grep -v "\( TOC \|INSERT INTO launchpaddatabaserevision \|sessiondata\|sessionpkgdata\|SELECT pg_catalog\.setval\|^--\| fticache \|'fticache'\|ALTER TABLE secret\|INSERT INTO secret\)" \
 
47
    | $(PYTHON) sort_sql.py > $(2); \
 
48
    $(PYTHON) fti.py --force -d ${1} -q
47
49
 
48
50
# The latest schema dump from production. Database patches are relative
49
51
# to this baseline. This dump should be updated every production rollout
56
58
MD5SUM=8a2e8fb0c3665cf1b07487fe3650816e  launchpad-2109-00-0.sql
57
59
default: all
58
60
 
 
61
# Create a launchpad_ftest_template DB and load the test sample data into it.
59
62
test: create 
60
63
        @ echo "* Creating database \"$(TEMPLATE_WITH_TEST_SAMPLEDATA)\"."
61
64
        @if [ "$$((`psql -l | grep -w ${TEMPLATE_WITH_TEST_SAMPLEDATA} | wc -l`))" = '1' ]; \
72
75
        @ echo "* Vacuuming"
73
76
        @ psql -d ${TEMPLATE_WITH_TEST_SAMPLEDATA} -c 'vacuum full analyze' | grep : | cat
74
77
 
 
78
# Create a launchpad_dev_template DB and load the dev sample data into it.
 
79
# Also create a launchpad_ftest_playground DB as a copy of
 
80
# launchpad_ftest_template.
75
81
dev: test
76
 
        # Create a launchpad_dev_template DB and load the dev sample data into it.
77
82
        @ echo "* Creating ${TEMPLATE_WITH_DEV_SAMPLEDATA}"
78
83
        @if [ "$$((`psql -l | grep -w ${TEMPLATE_WITH_DEV_SAMPLEDATA} | wc -l`))" = '1' ]; \
79
84
            then ${DROPDB} ${TEMPLATE_WITH_DEV_SAMPLEDATA} | grep : | cat ; \
95
100
        @ sleep 2
96
101
        @ ${CREATEDB} ${TEMPLATE_WITH_DEV_SAMPLEDATA} ${DBNAME}
97
102
 
98
 
        # Here we can use TEMPLATE_WITH_TEST_SAMPLEDATA as the template
99
 
        # because that has the sample data we want.
100
103
        @ echo "* Creating ${TEST_PLAYGROUND_DBNAME}"
101
104
        @if [ "$$((`psql -l | grep -w ${TEST_PLAYGROUND_DBNAME} | wc -l`))" = '1' ]; \
102
105
            then ${DROPDB} ${TEST_PLAYGROUND_DBNAME} | grep : | cat ; \
104
107
        @ sleep 2
105
108
        @ ${CREATEDB} ${TEMPLATE_WITH_TEST_SAMPLEDATA} ${TEST_PLAYGROUND_DBNAME}
106
109
 
 
110
# This will create a DB named launchpad_empty and load the base
 
111
# database schema, full text indexes and grants into it.
 
112
# It will also create session DBs for the test and dev environments.
 
113
# No sample data is added at this point.
107
114
create: check
108
 
        # This will create a DB named launchpad_empty and load the base
109
 
        # database schema, full text indexes and grants into it.
110
 
        # No sample data is added at this point.
111
115
        @ echo "* If this fails you need to run as the postgresql superuser"
112
116
        @ echo "* eg. sudo -u postgres make create"
113
117
        @ echo
141
145
        @ echo "* Security setup"
142
146
        @ ${PYTHON} security.py -d ${EMPTY_DBNAME}
143
147
 
144
 
        # Now create session databases, both for tests and for the dev
145
 
        # environment.
146
 
        @ echo "* Creating session database '${SESSION_DBNAME}' (if necessary)"
 
148
        @ echo "* Creating session databases '${SESSION_DBNAME}' (if necessary)"
147
149
        @if [ "$$((`psql -l | grep -w ${SESSION_DBNAME} | wc -l`))" = '0' ]; \
148
150
            then ${CREATEDB} template1 ${SESSION_DBNAME} ; \
149
151
            createlang plpgsql ${SESSION_DBNAME}; \