{"id":2870,"date":"2020-10-21T09:30:17","date_gmt":"2020-10-21T14:30:17","guid":{"rendered":"http:\/\/linuxitos.com\/main\/?p=2870"},"modified":"2021-02-23T21:37:16","modified_gmt":"2021-02-24T03:37:16","slug":"codeigniter-4-con-postgresql","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/codeigniter-4-con-postgresql\/","title":{"rendered":"Codeigniter 4 con PostgreSQL"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1024x618.png\" alt=\"\" class=\"wp-image-2871\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1024x618.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-300x181.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-768x464.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28.png 1353w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Siguiendo con los tutoriales de Codeigniter, ahora el ejemplo es con una conexi\u00f3n usando PostgreSQL. No voy a explicar las conexiones, o consultas, ya que todo eso se delega al framework, de tal forma que en eso no hay cambios, son consultas que se van armando, y codeigniter se encarga de realizarlas a la base de datos que se configure, lo que s\u00ed explicar\u00e9 un poco m\u00e1s, es sobre la configuraci\u00f3n que se tiene que realizar para poder utilizar Postgresql con Codeigniter 4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requerimientos<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"400\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/xamp-ci4-postgresql.png\" alt=\"\" class=\"wp-image-2872\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/xamp-ci4-postgresql.png 850w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/xamp-ci4-postgresql-300x141.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/xamp-ci4-postgresql-768x361.png 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>XAMPP 7.4.11<\/li><li>PostgreSQL &gt;11<\/li><li>Codeigniter 4<\/li><li>En este caso y las configuraciones se realizaron con Fedora 32 x86_64 (no probado con windows)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n de PostgreSQL<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La instalaci\u00f3n de PostgreSQL no la explicar\u00e9 aqu\u00ed, sino en otro tutorial que tengo <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/blog.linuxitos.com\/instalar-postgresql-12-fedora-31\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/blog.linuxitos.com\/instalar-postgresql-12-fedora-31<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n de XAMPP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Instalaci\u00f3n de XAMPP en Fedora <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.linuxitos.com\/instalar-xampp-7-4-5-fedora-32\" target=\"_blank\">https:\/\/blog.linuxitos.com\/instalar-xampp-7-4-5-fedora-32<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Configuraci\u00f3n adicional de XAMPP<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Previo a descargar el proyecto con PostgreSQL, es necesario realizar la siguiente configuraci\u00f3n en XAMPP<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo gedit \/opt\/lampp\/etc\/php.ini<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se busca la l\u00ednea ;extension=\u00bbpgsql.so\u00bb y se descomenta:<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">extension=php_pdo_pgsql.dll\nextension=php_pgsql.dll\nextension=\"pgsql.so\"<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Descargar proyecto de gitlab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El proyecto lo sub\u00ed a gitlab, as\u00ed que ah\u00ed lo pueden descargar:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a rel=\"noreferrer noopener\" href=\"https:\/\/gitlab.com\/ferm\/codeigniter4-tutorials-postgresql\" target=\"_blank\">https:\/\/gitlab.com\/ferm\/codeigniter4-tutorials-postgresql<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez descargado el proyecto de GitLab, se monta sobre htdocs dentro del directorio de XAMPP, el cual est\u00e1 en \/opt\/lampp\/htdocs\/<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Asignar permisos al directorio del proyecto<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Abrir la terminal y entrar a la ruta de \/opt\/lampp\/htdocs\/<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo chown -R daemon:tu-usuario codeigniter4-tutorials-postgresql<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo chmod -R 775 codeigniter4-tutorials-postgresql<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo chmod 777 -R codeigniter4-tutorials-postgresql\/writable<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si el cambiaron el nombre al proyecto, entones cambiarlo aqu\u00ed tambi\u00e9n, o bien su nombre de usuario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Crear la base de datos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En \u00e9ste caso, se usa pgamin 3 para conectarse al servidor de postgresql, sin embargo, si quieren usar otro, no hay problema. O bien pueden crearla de manera manual, el script est\u00e1 en el proyecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Abrir pgadmin, crear una conexi\u00f3n una base de datos, y restaurarla desde el archivo que est\u00e1 en el proyecto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"748\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Peek-2020-10-21-09-17.gif\" alt=\"\" class=\"wp-image-2873\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar la conexi\u00f3n a postgresql desde codeigniter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hay dos archivos solamente que son necesarios modificar:<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Archivo .env<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9ste archivo contiene la url del proyecto, encriptaci\u00f3n, contrase\u00f1as de las bases de datos, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00f3lo modificamos la url del proyecto, y la base de datos, lo dem\u00e1s lo dejo a su consideraci\u00f3n, adem\u00e1s, debo mencionar que \u00e9ste proyecto est\u00e1 configurado en modo development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el archivo .env se modifican los siguientes accesos que correspondan a la configuraci\u00f3n del servidor de postgresql que est\u00e9n usando<\/p>\n\n\n\n<pre style=\"background: rgb(224, 224, 224); border-radius: 6px; border: 0px; box-sizing: border-box; color: #000; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">#--------------------------------------------------------------------\n# DATABASE\n#--------------------------------------------------------------------\n\ndatabase.default.hostname =localhost\ndatabase.default.database =ci_ajax_pagination\ndatabase.default.username =postgres\ndatabase.default.password =\ndatabase.default.DBDriver =Postgre\ndatabase.default.port =5432<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Archivo app\/Config\/App.php<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed se modifca la url del proyecto, nombre, etc.<\/p>\n\n\n\n<pre style=\"background: rgb(224, 224, 224); border-radius: 6px; border: 0px; box-sizing: border-box; color: #000; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">public $baseURL = 'http:\/\/localhost\/devs\/ci4_postgresql_tutorials\/';<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Archivo app\/Config\/Database.php<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se modifican los par\u00e1metros de acuerdo a la configuraci\u00f3n del servidor de postgresql que est\u00e9n utilizando<\/p>\n\n\n\n<pre style=\"background: rgb(224, 224, 224); border-radius: 6px; border: 0px; box-sizing: border-box; color: #000; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">public $default = [\n\t\t'DSN'      =&gt; 'pgsql:host=localhost;port=5432;dbname=ci_ajax_pagination;user=user;password=password',\n\t\t\/\/'DSN'      =&gt; '',\n\t\t'hostname' =&gt; 'localhost',\n\t\t'username' =&gt; '',\n\t\t'password' =&gt; '',\n\t\t'database' =&gt; 'ci_ajax_pagination',\n\t\t'DBDriver' =&gt; 'Postgre',\n\t\t'DBPrefix' =&gt; '',\n\t\t'pConnect' =&gt; false,\n\t\t'DBDebug'  =&gt; (ENVIRONMENT !== 'production'),\n\t\t'cacheOn'  =&gt; false,\n\t\t'cacheDir' =&gt; '',\n\t\t\/*'charset'  =&gt; 'latin1',\n\t\t'DBCollat' =&gt; 'latin1_swedish_ci',*\/\n\t\t'charset'  =&gt; 'utf8',\n\t\t'DBCollat' =&gt; 'utf8_general_ci',\n\t\t'swapPre'  =&gt; '',\n\t\t'encrypt'  =&gt; false,\n\t\t'compress' =&gt; false,\n\t\t'strictOn' =&gt; false,\n\t\t'failover' =&gt; [],\n\t\t'port'     =&gt; 5432,\n\t];<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Correr el proyecto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez realizado todos esos cambios, ahora abrir la url del proyecto en el navegador http:\/\/localhost\/codeigniter4-tutorials-postgresql\/<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1-1024x618.png\" alt=\"\" class=\"wp-image-2880\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1-1024x618.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1-300x181.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1-768x464.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2020\/10\/Screenshot-from-2020-10-21-08-42-28-1.png 1353w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En el gif de ejemplo, es otra url, pero eso simplemente es porque tengo muchos proyecto de ejemplos, y por comodidad los he agrupado en una directorio llamado devs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y eso ser\u00eda todo, si tienen alguna duda, o comentario, por favor dejarlo aqu\u00ed abajo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Siguiendo con los tutoriales de Codeigniter, ahora el ejemplo es con una conexi\u00f3n usando PostgreSQL. No voy a explicar las conexiones, o consultas, ya que todo eso se delega al framework, de tal forma que en eso no hay cambios, son consultas que se van armando, y codeigniter se encarga de realizarlas a la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1540,7],"tags":[1633,1703,1587],"class_list":["post-2870","post","type-post","status-publish","format-standard","hentry","category-develepmet","category-fedora","tag-codeigniter","tag-postgresql","tag-xampp"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/2870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=2870"}],"version-history":[{"count":5,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/2870\/revisions"}],"predecessor-version":[{"id":3029,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/2870\/revisions\/3029"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=2870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=2870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=2870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}