Skip to content

Instantly share code, notes, and snippets.

@kenvac
kenvac / pgcursor.py
Last active August 9, 2018 11:21
Passing connections to functions using a decorator
import psycopg2
from functools import wraps
from contextlib import contextmanager
from psycopg2.pool import ThreadedConnectionPool
PSQL_CONN = {
'host': '127.0.0.1',
'port': '5432',
'user': 'user',
'password': 'password',
@kenvac
kenvac / pyscopg2_decorator.py
Created August 9, 2018 10:57 — forked from travishathaway/pyscopg2_decorator.py
Postgres Connections with Python Decorators
####################
# Define Decorator #
####################
def psycopg2_cursor(conn_info):
"""Wrap function to setup and tear down a Postgres connection while
providing a cursor object to make queries with.
"""
def wrap(f):
@wraps(f)
def wrapper(*args, **kwargs):
@kenvac
kenvac / flask_app_logging.py
Created August 9, 2018 05:57 — forked from ivanleoncz/flask_app_logging.py
Demonstration of logging feature for a Flask App.
#/usr/bin/python3
""" Demonstration of logging feature for a Flask App. """
from logging.handlers import RotatingFileHandler
from flask import Flask, request, jsonify
from time import strftime
__author__ = "@ivanleoncz"
import logging
@kenvac
kenvac / dropconnection.sql
Created August 6, 2018 09:14
terminate db connections postgresql 10
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB'
AND pid <> pg_backend_pid();
@kenvac
kenvac / gist:a84b88337cc147fe12c07cb30462b288
Created July 10, 2018 14:55 — forked from jfrost/gist:6584871
PostgreSQL query: completely unused indexes
-- Completely unused indexes:
SELECT relid::regclass as table, indexrelid::regclass as index
, pg_size_pretty(pg_relation_size(indexrelid))
FROM pg_stat_user_indexes
JOIN pg_index
USING (indexrelid)
WHERE idx_scan = 0
AND indisunique IS FALSE order by pg_relation_size(indexrelid);
@kenvac
kenvac / pgbouncer.ini
Created November 7, 2017 09:50
basic pgbouncer configuration with odoo
;; database name = connect string
;;
;; connect string params:
;; dbname= host= port= user= password=
;; client_encoding= datestyle= timezone=
;; pool_size= connect_query=
[databases]
odoo1 = host=127.0.0.1 auth_user=odoo dbname=odoo1 port=5432
odoo2 = host=127.0.0.1 auth_user=odoo dbname=odoo2 port=5432
odoo3 = host=127.0.0.1 auth_user=odoo port=5432 dbname=odoo3
@kenvac
kenvac / .mrconfig
Created October 20, 2017 09:50
odoo mr repo
# Courtesy: credativ UK
[DEFAULT]
addpath = echo "${MR_REPO}" >&0
relink = mkdir -p "$(dirname "${MR_CONFIG}")"/server-addons; ln -sf "$(mr -c "${MR_CONFIG}" -q addpath <&1)"/* "$(dirname "${MR_CONFIG}")"/server-addons/
[odoo]
checkout = git clone -b 11.0 https://github.com/odoo/odoo.git
addpath = echo "${MR_REPO}"/addons >&0
#!/bin/bash
################################################################################
#
# Script for Installation: ODOO v8 server on Ubuntu 14.04 LTS
# Author: André Schenkels, ICTSTUDIO 2014
#
# Forked: n / master
#-------------------------------------------------------------------------------
#
# This script will install ODOO v8 Server on a clean Ubuntu 14.04 Server and:
@kenvac
kenvac / postgres
Created March 15, 2017 20:18 — forked from mmrwoods/postgres
Postgres maintenance crontab file
# dump all databases once every 24 hours
45 4 * * * root nice -n 19 su - postgres -c "pg_dumpall --clean" | gzip -9 > /var/local/backup/postgres/postgres_all.sql.gz
# vacuum all databases every night (full vacuum on Sunday night, lazy vacuum every other night)
45 3 * * 0 root nice -n 19 su - postgres -c "vacuumdb --all --full --analyze"
45 3 * * 1-6 root nice -n 19 su - postgres -c "vacuumdb --all --analyze --quiet"
# re-index all databases once a week
0 3 * * 0 root nice -n 19 su - postgres -c 'psql -t -c "select datname from pg_database order by datname;" | xargs -n 1 -I"{}" -- psql -U postgres {} -c "reindex database {};"'
#!/bin/bash
# Vacuum, analyze and re-index all non-template postgres databases
# Should be run as root to avoid any permissions issues
db_list_sql="SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn ORDER BY datname"
for db in $(su - postgres -c "psql -At -c '$db_list_sql'"); do
su - postgres -c "vacuumdb --analyze --quiet $db"
su - postgres -c "PGOPTIONS='--client-min-messages=warning' reindexdb --quiet $db"