Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
День добрый. Задача: Разработать скрипт, который из набора sql файлов создает базу данных на заданном сервере. Если база с таким уменем уже существует, то ее нужно удалить. При выполнении DROP DATABASE "%DATABASE%"; получаю сообщение об ошибке: ERROR: database "%DATABASE%" is being accessed by other users Вполне логично, если с базой работают тестеры. Выполняю SELECT procpid FROM pg_stat_activity; Далее для каждого из procpid (кроме своего) выполняю SELECT pg_cancel_backend(procpid); Далее нужно как-то отключить всех пользователей от этой БД. Какие есть решения этой проблемы? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 17:58 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
прямо и просто, написать процедуру на plperlu которая будет kill'ять их процессы, хотя может и есть более изящный способ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 08:08 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
Спасибо. Но вариант с plperl не устраивает. Хотелось бы сделать средствами plpgsql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:54 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
помоему в консольной команде dropdb есть ключик -force, который позволит удальть бд несмотря на присутствие подключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 12:25 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
К сожалению, нет такого ключа. db# dropdb --help dropdb removes a PostgreSQL database. Usage: dropdb [OPTION]... DBNAME Options: -e, --echo show the commands being sent to the server -i, --interactive prompt before deleting anything -q, --quiet don't write any messages -h, --host=HOSTNAME database server host or socket directory -p, --port=PORT database server port -U, --username=USERNAME user name to connect as -W, --password prompt for password --help show this help, then exit --version output version information, then exit Report bugs to <pgsql-bugs@postgresql.org>. SELECT version(); PostgreSQL 8.1.4 on i386-portbld-freebsd6.2, compiled by GCC cc (GCC) 3.4.6 [FreeBSD] 20060305 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 14:06 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
Реально на plperlu у меня работает другого способа не нашел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 16:34 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
CREATE FUNCTION z_disconnect_from(character varying) RETURNS integer AS $_$ my ($dbn) = @_; my $sth = spi_query("select procpid from pg_stat_activity where procpid != pg_backend_pid() and datname = '$dbn'"); while (defined ($row = spi_fetchrow($sth))) { kill 15,$row->{procpid}; } return 1; $_$ LANGUAGE plperlu; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 16:37 |
|
||
|
Удаление базы данных
|
|||
|---|---|---|---|
|
#18+
Большое спасибо. Но возможности использовать plperl нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 21:37 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34321187&tid=2005708]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 385ms |

| 0 / 0 |
