Re: Using a Makefile during database development

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Using a Makefile during database development
Дата
Msg-id 5071.1074453027@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Using a Makefile during database development  (Bill Moran <wmoran@potentialtech.com>)
Ответы Re: Using a Makefile during database development  (Bill Moran <wmoran@potentialtech.com>)
Список pgsql-general
Bill Moran <wmoran@potentialtech.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

В списке pgsql-general по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: computed field on a table
Следующее
От: Carlos Costa Portela
Дата:
Сообщение: Great change (size of data dir) upgrading postgresql