From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bill Moran <wmoran(at)potentialtech(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Using a Makefile during database development |
Date: | 2004-01-18 19:10:27 |
Message-ID: | 5071.1074453027@sss.pgh.pa.us |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Bill Moran <wmoran(at)potentialtech(dot)com> writes:
> The problem I'm hitting is this: how can I teach make to know when a
> particular file is newer than the data in the database?
AFAIK there's no direct way to do that; all of make's decisions are
based on existence and mod times of files, so you can't persuade it to
test directly for SQL-level conditions.
However, this sort of problem comes up in many contexts, and make users
have developed a standard solution: you create or touch an empty
"timestamp" file when you do an action such as updating the database
from a particular collection of source files. The mod time of the
timestamp file can then serve as the comparison value telling make
whether to do it again. A typical rule would look like:
db_update.stamp: somefile.sql someotherfile.sql
psql mydb -f somefile.sql
psql mydb -f someotherfile.sql
touch db_update.stamp
You make one stamp file for each action you might or might not need to
do, and then user-level targets look like
update: db_update.stamp ...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos Costa Portela | 2004-01-18 19:51:14 | Great change (size of data dir) upgrading postgresql |
Previous Message | Peter Eisentraut | 2004-01-18 18:56:17 | Re: computed field on a table |