IIC2143-2020-2 / syllabus

Syllabus de IIC2143 Ingeniería de Software 2020-2
35 stars 10 forks source link

Problema con rails db:create #84

Closed catalina-ramirez closed 4 years ago

catalina-ramirez commented 4 years ago

Hola! Ayer en la ayudantía estuve con mil problemas en el paso de "rails db:create". En primer lugar me salía un error que tenía que ver con tzinfo-data, que me desapareció una vez que puse en la consola el siguiente comando: bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java Luego, seguía con problemas con la creación de los database, hasta que encontré que el problema podía ser el encoding de "database.yml", por lo que lo cambié de unicode a SQL_ASCII. Y ahí funcionó. Venía a preguntar, ¿qué tan bien está lo que hice? Igualmente probé en un computador con linux y ahí pude hacer todo de forma normal (como sale en la guía), pero quiero saber si en mi computador (Windows, usando wsl) podría hacerlo de la forma en que les dije. Gracias por la ayuda!

daleal commented 4 years ago

Hola! Aparentemente eso sucede en algunos sistemas operativos cuando faltan algunas librerías instaladas. Otra persona ya tuvo este problema, pero es bastante inusual. Por lo mismo, mi recomendación sería usar la configuración que ya usaste y seguir con el proyecto. En cualquier caso, de presentarse algún problema en el futuro, solamente hay que cambiar del proyecto una línea para volver al estado inicial de la configuración (que sería la línea del encoding de database.yml), así que creo que es una "jugada segura"

johnowenatala commented 4 years ago

Hola, quería explicar un poco qué significa esto del encoding:

TL;DR - probablemente tendrás problemas al guardar letras con tildes y eñes

El encoding esencialmente dice cómo se traduce los bits a caracteres. Entre los distintos encoding normalmente hay acuerdo entre los caracteres que van desde el 1 hasta 127 (son 32 caracteres no imprimibles y el resto son letras, números y algunos símbolos) - al menos los encoding que conozco todos coinciden hasta aquí con el US-ASCII: http://www.asciitable.com/

El problema es con cualquier otro caracter. ¿Qué tan grande es el problema? Bueno, wikipedia dice que en Unicode se definen 1,112,064 caracteres ... estos son ejemplos símbolos no ASCII: € ¿ ¡ ñ ç ª ü 😅 (si, los emoticons también son caracteres).

¿Y qué encoding debo usar? Usa UTF-8 . Como dato, Ruby trabaja los strings de manera nativa como utf-8, lee los archivos y los escribe en utf-8, maneja las comunicaciones en utf-8 y los archivos mismos de Ruby se escriben en UTF-8. Y si ves el código fuente de esta página, verás este tag, que indica que esta página es UTF-8: . Ahh, y en postgresql, el encoding default (encoding: unicode) es UTF-8 XD