miércoles, 27 de septiembre de 2017

Modificar tipo de dato en columna postgresql

Muchas veces nos encontramos que ya tenemos creado todo nuestro esquema relacional de base de datos y por cualquier motivo después del diseño debemos obligadamente cambiar el tipo de dato de nuestra columna como por ejemplo pasar de numérico a double, claro esta dejarles que no todo el tiempo funciona cuando el tipo de dato no es compatible, así que tomen sus precauciones a la hora de realizar esto.

Les muestro la sentencia que debería ejecutar y se explica los parámetros usados para realizar el cambio de la estructura de la tabla. En este ejemplo quiero cambiar un campo int a uno smallint, reduciendo así el tamaño de los datos que se ingresen en él y así optimizando el espacio en disco de nuestro servidor.



ALTER TABLE schema.tabla  ALTER COLUMN campo TYPE smallint USING CAST(campo AS INT);

Si vemos el detalle no es muy confusa la instrucción, se requiere un ALTER TABLE para indicar que queremos modificar algo, luego viene que vamos a cambiar, en esto le decimos el esquema y la tabla de nuestra base de datos, luego decimos que cosa vamos a modificar y esto es el ALTER COLUMN y pasamos el nombre de la columna, hay otras opciones que pueden utilizar pero para nuestro ejemplo este; como usamos un alter column debemos decirle que vamos a modificar de la columna, en este caso es el parámetro TYPE e indicamos el tipo de dato a cambiar y el resto USING CAST(campo AS INT) es para transformar los datos al nuevo tipo de dato dado.


Les agradezco su atención y si quieren comentar algo con gusto estaremos para recibirlos.

lunes, 21 de agosto de 2017

Crear y borrar usuarios en MongoDB

Para este tutorial básico vamos a aprender a crear y borrar usuarios en MongoDB. La instalación base provee el acceso a la base de datos usando el comando mongo a través de la linea de comandos del terminal sin autenticación. Vamos a enseñar a crear usuarios con propiedades de autenticación. Sacado del manual en ingles de https://tecadmin.net/create-drop-users-in-mongodb/

Crear usuario Admin

Puedes usar el comando para crear el usuario admin con privilegios en su servidor mongoDB.
$ mongo

> use admin

> db.createUser(
     {
       user:"administrador",
       pwd:"4dm1n1str4d0r",
       roles:[{role:"root",db:"admin"}]
     }
  )

> exit
Ahora vamos a conectarnos con el usuario creado con las credenciales a través de la consola, este le pedirá la clave creada en el paso anterior.
$ mongo -u administrador -p  --authenticationDatabase admin

Agregar usuarios sin roles de administrador

Podemos crear usuarios que no tenga privilegios administrativos, solo que puedan leer o escribir en la base de datos. Se puede especificar niveles de acceso para los usuarios en la base de datos. Por ejemplo podemos crear un usuario con acceso de lectura/escritura en la base de datos mydb.
$mongo

> use mydb

> db.createUser(
    {
      user: "luis",
      pwd: "123456",
      roles: ["readWrite"]
    }
 ) 

> exit
Verificar el uso de la autenticación usar los siguientes comandos. El resultado1 significa autenticación completa.
$mongo

> use mydb

> db.auth('luis','123456')
Listar todos los usuarios de la base de datos, use el siguiente comando
> db.getUsers()

Eliminar un Usuario de una Base de datos

Para eliminar un usuario de la base de datos usar el siguiente comando.
> use mydb

> db.dropUser('luis')
Agredeciendo su atención y esperar ayudar en este mundo tecnológico y avanzar al paso de estas tecnología.

Instalar Mongodb 3.4 en debian

MongoDB es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto. MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL.  según "Wikipedia".

El sistema MongoDB es un completo y flexible queries database. Mongodb es una base de datos  NoSQL. MongoDB permite grandes volumenes de datos, especiealmente para almacenar media, documentos y demás con GridFS. 
install mongodb
Este tutorial está basado en la instalación de MongoDB 3.4 en Debian 8 y 7, es una traducción casi literal de la página https://tecadmin.net/install-mongodb-on-ubuntu/.

Agregar el repositorio al sistema

Primero debemos importar la clave publica de MongoDB al sistema de repositorios de debian usando el siguente comando, este no es obligatorio sino puede ejecutar este comando omitalo y continue. Recordar que debe ejecutar los comandos con el usuario root.
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Ahora agregar el APT repositorio a la siguiente ruta /etc/apt/sources.list.d/mongodb-3.4.list ó hacerlo de la manera habitual de copiar el url y pegarlo en el archivo /etc/apt/source.list. 
$ echo "deb http://repo.mongodb.org/apt/debian "$(lsb_release -sc)"/mongodb-org/3.4 main" |  tee /etc/apt/sources.list.d/mongodb-3.4.list

Instalar MongoDB

Ahora usamos el siguiente comando para instalar MongoDB en el sistema operativo. Instalará las dependencia de MongoDB.
$ apt-get update ó aptitude update (recomendado)
$ apt-get install mongodb-org ó aptitude install mongodb-org(recomendado) ó apt install mongodb-org
Si se requiere instalar una versión especifica de MontoDB, define la versión del numero.
$ apt-get install mongodb-org=3.4.1 mongodb-org-server=3.4.1 mongodb-org-shell=3.4.1 mongodb-org-mongos=3.4.1 mongodb-org-tools=3.4.10

Iniciar el servicio de MongoDB

Después de la instalación, MongoDB se inicia automaticamente. Para iniciar o parar el servicio de MongoDB use los scripts de inicio de la siguiente manera.
$ service mongod start 
$ service mongod stop

Verificar la instalación de MongoDB

Use el siguiente comando para verificar la versión y que la instalación terminó exitosamente.
$ mongod --version 

db version v3.4.7
git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd
OpenSSL version: OpenSSL 1.0.1t  3 May 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: debian81
    distarch: x86_64
    target_arch: x86_64

También puede conectarse a MongoDB usando el comando y ejecutar lo siguiente para probar que trabaja bien.
$ mongo

> use mydb;

> db.test.save( { tecadmin: 100 } )

> db.test.find()

  { "_id" : ObjectId("599b22ac429afb5650c9f2da"), "tecadmin" : 100 }
Espero sea de gran ayuda para los que inician en el sistema de Mongodb y para todo aquel que requiera información.

Muchas gracias y a seguir aportando.