Por defecto si queremos instalar PostgreSQL en Debian se instalará la ultima versión (en este momento la 9.4).
En mi caso deseo instalar la versión 9.1 por tener compatibilidad con postgis 1.5 (estoy trabajando en una base de datos antigua que solo soporta esa versión de postgis).
Para hacerlo se hace lo siguiente:
Primero debes crear un nuevo list que apunte a los repos de postgres
nano /etc/apt/sources.list.d/pgdg.list
denttro del fichero pgdg.list debes agregar la siguiente linea según la versión de debian que tengas:
Para debian 8 (jessie):
deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
Para debian 7 (wheezy):
deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main
Luego ejecutas
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
y por último
apt-get update
Ahora si puedes proceder a instalar postgres
apt-get install postgresql-9.1
http://www.postgresql.org/download/linux/debian/
Mostrando entradas con la etiqueta postgres. Mostrar todas las entradas
Mostrando entradas con la etiqueta postgres. Mostrar todas las entradas
miércoles, 13 de abril de 2016
domingo, 8 de febrero de 2015
Ejemplo Qt5 + Postgres
En la entrada anterior expliqué como se configuraba fedora para conectar qt5 con postgres. Ahora aquí se muestra un ejemplo de una aplicación en Qt que se conecta con una BD en postgres.
Primero creamos la BD de ejemplo desde pgadmin3. En este caso se llama BD_UNEG
CREATE DATABASE "BD_UNEG"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'es_VE.UTF-8'
LC_CTYPE = 'es_VE.UTF-8'
CONNECTION LIMIT = -1;
-- Table: persona
CREATE TABLE persona
(
cedula character varying(20) NOT NULL,
nombre character varying(50),
tipo character varying(30),
estatus character varying(30),
carrera character varying(30),
CONSTRAINT persona_pkey PRIMARY KEY (cedula)
)
WITH (
OIDS=FALSE
);
ALTER TABLE persona
OWNER TO postgres;
Quedaría así
Ahora agrega algo a la BD.
NOTA: En este ejemplo la clave de postgres es 123456 y el puerto es 5432
Este es el código en Qt que busca todos los elementos de la tabla persona y los muestra
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlError>
#include <QStringList>
#include <QMessageBox>
#include <QSqlQuery>
#include <QSqlRecord>
bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("127.0.0.1"); // Nombre del host
db.setDatabaseName("BD_UNEG"); // Nombre de la BD
db.setPort(5432); // Puerto
db.setUserName("postgres"); // Usuario
db.setPassword("123456"); // Contraseña
// Si esta abierto entonce retorna true
if (db.isOpen()){
qWarning() <<"La conexión ya estaba creada";
return true;
}
// Abre la BD
if (!db.open()) {
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}
return true;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << (createConnection() ? "Se crea la conexión :)" : "ERROR al conectar :(");
QSqlQuery qry;
qry.prepare( "SELECT * FROM persona" );
if( !qry.exec() )
qDebug() << qry.lastError();
else
{
qDebug( "Seleccionado!" );
QSqlRecord rec = qry.record();
int cols = rec.count();
for( int c=0; c<cols; c++ )
qDebug() << QString( "Columna %1: %2" ).arg( c ).arg( rec.fieldName(c) );
for( int r=0; qry.next(); r++ )
for( int c=0; c<cols; c++ )
qDebug() << QString( "Fila %1, %2: %3" ).arg( r ).arg( rec.fieldName(c) ).arg( qry.value(c).toString() );
}
return a.exec();
}
Recuerda agregar QT += sql en el fichero .pro
Links de interes:
http://www.informit.com/articles/article.aspx?p=1405550
http://www.java2s.com/Code/Cpp/Qt/ConnecttoMySqlwithQSqlDatabaseanddoselectupdateinsertanddelete.htm
http://www.ics.com/designpatterns/solutions/qsqldatabase.html
Qt + Postgresql en Fedora 21
Para usar una bd en postgresql usando Qt en fedora 21 primero debes instalar el driver de postgresql
yum install qt5-qtbase-postgresql
Luego en el proyecto agregar la linea sql en el fichero .pro de nuestro proyecto
yum install qt5-qtbase-postgresql
Luego en el proyecto agregar la linea sql en el fichero .pro de nuestro proyecto
Listo :) Ahora puesdes probar el driver usando el siguiente código:
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QStringList>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Available drivers: " << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
qDebug() << "addDatabase() " << (db.isValid() ? "VALID" : "ERROR");
return a.exec();
}
Aqui pongo un ejemplo más pulido:
Solucionar problema "la autentificación password falló para el usuario postgres" SOLUCIÓN DEFINITIVA
Esta es una solución definitiva hecha con arrechera porque estos hijos de la mil puta hacen que perdamos tiempo modificando la maldita contraseña y buscando como arreglar este maldito problema:
Primero cambiar la clave del usuario postgres
Primero cambiar la clave del usuario postgres
passwd postgres
(luego introducimos la clave)
Luego debes comentar con # todas las entradas de
/var/lib/pgsql/data/pg_hba.conf y añadir al final
#TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all ident# IPv4 local connections:host all all 127.0.0.1/32 md5host all all 127.0.0.1/32 md5# IPv6 local connections:host all all ::1/128 md5
Así quedó en mi terminal: |
domingo, 16 de marzo de 2014
Generar diagramas ER para postgresql con SchemaSpy
Antes de empezar primero debemos tener instalado graphviz y java (opendjk o el de oracle).
Para instalar graphviz en ubuntu o debian prueba con: sudo apt-get install graphviz
1- Luego de tener java y graphviz instalado entonces nos descargamhos este fichero ya preparado que tiene el driver de postgres 9.3 para java y el programa que genera los diagramas (SchemaSpy).
Si tienes una versión distinta de postgres entonces debes descargar el driver adecuado desde este sitio y substituir dicho fichero .jar por driver.jar
2- Lo descomprimimos en un directorio y ejecutamos en el:
java -jar schemaSpy -t pgsql -cp ./driver.jar -db NOMBREDB -host HOST -port PUERTO -u USUARIO -p CONTRASEÑA -o DESTINO -schemas "public,something,else"
Donde:
* ./driver.jar: Es el nombre del driver de JDBC para postgres
* NOMBREDB: Es el nombre de la base de datos
* HOST: Es el host de la base de datos
* PUERTO: Es el puerto de la BD
* USUARIO: Es el usuario de la BD
* CONTRASEÑA: El pass de la BD
* DESTINO: Es donde queremos ubicar los ficheros que se van a generar (diagramas, etc)
Por ejemplo:
java -jar schemaSpy -t pgsql -cp ./driver.jar -db 'tienda_virtual' -host 'localhost' -port '5432' -u 'postgres' -p '1234' -o destino -schemas "public,something,else"
Debería arrojar algo como esto:
En la carpeta de destino estará la documentación generada.
Para instalar graphviz en ubuntu o debian prueba con: sudo apt-get install graphviz
1- Luego de tener java y graphviz instalado entonces nos descargamhos este fichero ya preparado que tiene el driver de postgres 9.3 para java y el programa que genera los diagramas (SchemaSpy).
Si tienes una versión distinta de postgres entonces debes descargar el driver adecuado desde este sitio y substituir dicho fichero .jar por driver.jar
2- Lo descomprimimos en un directorio y ejecutamos en el:
java -jar schemaSpy -t pgsql -cp ./driver.jar -db NOMBREDB -host HOST -port PUERTO -u USUARIO -p CONTRASEÑA -o DESTINO -schemas "public,something,else"
Donde:
* ./driver.jar: Es el nombre del driver de JDBC para postgres
* NOMBREDB: Es el nombre de la base de datos
* HOST: Es el host de la base de datos
* PUERTO: Es el puerto de la BD
* USUARIO: Es el usuario de la BD
* CONTRASEÑA: El pass de la BD
* DESTINO: Es donde queremos ubicar los ficheros que se van a generar (diagramas, etc)
Por ejemplo:
java -jar schemaSpy -t pgsql -cp ./driver.jar -db 'tienda_virtual' -host 'localhost' -port '5432' -u 'postgres' -p '1234' -o destino -schemas "public,something,else"
Debería arrojar algo como esto:
En la carpeta de destino estará la documentación generada.
Un gráfico generado:
Suscribirse a:
Entradas (Atom)









