Labels

Android (1) bash (2) boost (2) C (34) C++ (2) cheatsheet (2) CLion (6) css (3) Debian (33) DL (17) Docker (1) Dreamweaver (2) Eclipse (3) fail2ban (4) git (5) GitHub (4) Hacking (3) html (8) http (1) iOS (1) iPad (1) IRC (1) Java (30) javascript (3) Linux (164) Mac (19) Machine Learning (1) mySQL (47) Netbeans (4) Networking (1) Nexus (1) OpenVMS (6) Oracle (1) Pandas (3) php (16) Postgresql (8) Python (9) raid (1) RedHat (14) Samba (2) Slackware (45) SQL (14) svn (1) tar (1) ThinkPad (1) Virtualbox (3) Visual Basic (1) Visual Studio (1) Windows (2)

Thursday 9 January 2020

Replacing postgres database

This is applicable to the Peon application, in so far as when the PAF data is updated and a new database is created, normally to a temp test database for testing, afterwhich a renaming or replacing of working database is required.



So, firstly, we need to ensure that there are no active connections, this can be checked with the following query, where target_database is the database name:

SELECT
   *
FROM
   pg_stat_activity
WHERE
   datname = 'target_database';

If we need to kill connections, then the following can be tried where pg_stat_activity.pid is the pid shown by the previous query. target_database is the database name:

SELECT
   pg_terminate_backend (pg_stat_activity.pid)
FROM
   pg_stat_activity
WHERE
   pg_stat_activity.datname = 'target_database';

I never found the above to be successful, so opted instead to shut down the database, which can of course be achieved by the following:

/etc/rc.d/rc.postgresql stop

followed by:

/etc/rc.d/rc.postgresql start

Then as the postgres user, normally postgres, run psql

To drop the database (there should be no active connections now;

DROP DATABASE db_name;

To rename database;

ALTER DATABASE db_name_old RENAME TO db_name_new;

Alternatively, we can of course import the database, but first creating the database and importing. As per here.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.