postgreSQL

pg_dump: продолжение работы с другой версией сервера невозможно

bash-4.1$ pg_dump ...
Пароль:
pg_dump: версия сервера: 9.3.1; версия pg_dump: 8.4.18
pg_dump: продолжение работы с другой версией сервера невозможно

На сервере может стоять несколько версий pg_dump, необходимо найти нужную версию и выставить на нее указатель

sudo ln -s /usr/pgsql-9.3/bin/pg_dump /usr/bin/pg_dump --force

 

2147483647

  • Это наибольшее число, которое вмещает 32-битный знаковый целый тип данных signed int32.
  • Также это число связано с проблемой 2038 года, когда стандартный тип данных для хранения времени time_t переполнится на 32-битных компьютерах.

ER диаграммы

Для создания ER диаграмм под postgres можно использовать schemaspy.

Официальный сайт schemaspy.sourceforge.net/

Что для этого надо:

  1. Сам schemaspy
  2. java (sudo apt-get install openjdk-7-jdk)
  3. The Graphviz Diagram Engine (sudo apt-get install graphviz)
  4. Драйверы для БД (в моем случае postgres 9.3.5 http://jdbc.postgresql.org/download.html)

Запускается все это дело командой:

DROP DATABASE ERROR: database 'target_database' is being accessed by other users

Проявляется так:

postgres=# drop database test;
ERROR:  database "test" is being accessed by other users
DETAIL:  There is 1 other session using the database.

Целиком читать тут

First, find the activities that are taken place against the target database,
you can query the pg_stat_activity view as the following query:

Изменение типа enum в postgres 8.1

Postgres 9 поддерживает расширение собственного типа ENUM через ALTER TYPE, чего нет в postgres 8

Приходится делать так:

(для примера наш тип будет называться extype, колонки с этим типом у меня называются также)

1. Выбираем таблицы с колонками с названием extype

select table_name from information_schema.columns where column_name = 'extype';

2. Переименовываем старый тип

Обновть тип колонки с int на bigint

alter table some_table alter column tables_column type bigint;

Если при обновлении созданы какие-то views на основе этого поля. то придется их удалить и пересоздавать

drop view view_name;
CREATE VIEW view_name AS SELECT column1,column2 FROM some_table;

Изменить владельца сущностей базы данных postgres

Для таблиц:

for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" YOUR_DB` ; do  psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done

Для сущностей:

for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" YOUR_DB` ; do  psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done

Для представлений:

Разрешить подключаться к порту 5432 с удаленного хоста red hat

В файле: /etc/sysconfig/iptables добавить строчку:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5432 -j ACCEPT

/etc/init.d/iptables restart

В файле: /var/lib/pgsql/9.3/data/pg_hba.conf задать разрешения

В файле: /var/lib/pgsql/9.3/data/postgresql.conf  прописать в listen_addresses = '*' или хосты через запятую.

 

Страницы