# MySQL
Esta sección explica las configuraciones básicas para establecer una conexión a una Base de Datos MySQL.
El apartado de configuraciones para las conexiones a Bases de Datos usando el BackEndBase, se encuentran en el archivo app/config/databases/settings.py, donde se especifica que conexión usar por defecto, así como los datos de la misma.
# set the Database Provider
DATABASE_PROVIDER = 'mysql'
Al usar SQLAlchemy (opens new window) como ORM, se brinda un acceso a bases de datos completo, eficiente y de alto rendimiento, adaptados al lenguaje de programación Python.
Al elegir mysql
ó postgresql
, El BackEndBase buscará automaticamente la configuración de para la conexión a estos motores de Bases de Datos. Puedes usar Firestore ó Cloud Datastore en este modo.
De igual manera, SQLAlchemy puede dar soporte completo a otros sistemas de bases de datos, más información por aquí. (opens new window)
Para más información consulta el módulo generic_model, que detalla el uso de los metodos disponibles.
# Entorno local
Ubicar y cambiar el valor de la variable CUSTOM_SERVER ubicada en el archivo app/config/databases/custom_servers.py
CUSTOM_SERVER = {
'MYSQL': {
'DB_HOST': os.environ.get('MYSQL_LOCAL_DB_HOST', 'localhost'),
'DB_USER': os.environ.get('MYSQL_LOCAL_DB_USER', 'awesome-user'),
'DB_PASSWD': os.environ.get('MYSQL_LOCAL_DB_PASSWD', 'awesome-password'),
'DB_NAME': os.environ.get('MYSQL_LOCAL_DB_NAME', 'awesomedb'),
'DB_PORT': "3306"
},
}
Y establecer los valores apropiados.
Recuerda
Esta configuración aplica tambíen cuando el BackEndBase se ejecuta sobre un servidor personalizado ó en contenedores.
# Entorno en la nube (Google Cloud)
Ubicar y cambiar el valor de la variable APP_ENGINE ubicada en el archivo app/config/databases/google_cloud.py
APP_ENGINE = {
'MYSQL_CLOUD': {
'DB_HOST': "mysql+pymysql://",
'DB_USER': "user_here",
'DB_PASSWD': "password_here",
'DB_NAME': "awesomedb",
'DB_PORT': "3306",
'PROJECT_ID': "project-name:project-zone",
'INSTANCE_NAME': "instance-name"
},
}
Y establecer los valores apropiados.
Por defecto Google Cloud, solo admite el usuario root y el puerto 3306.
# Esquema por defecto
El BackEndBase incluye un esquema de mySQL (opens new window) y datos de ejemplo.
El nombre por defecto para la base de datos es awesomedb y la colación es utf8_spanish_ci, más información por aquí. (opens new window)
Para empezar, crea una Base de Datos en su sevidor MySQL de nombre awesomedb y collation utf8_spanish_ci, importar los archivos:
- tools/mysql/schemaDB/db_mysql_schema.sql
- tools/mysql/schemaDB/initial_mysql_data.sql
en ese orden, a la nueva Base de Datos.
La información de las tablas creadas, se encuentra en los archivos anteriormente mencionados y se recomienda revisarlos para obtener una información más detallada.
# Tablas incluidas en el esquema
Revisar el archivo /tools/mysql/schemaDB/db_mysql_schema.sql para más información.
applications
auth_clients
auth_grants
auth_tokens
companies
logs
permissions
persons
role_permissions
roles
status
users
# Vistas incluidas en el esquema
Revisar el archivo /tools/mysql/schemaDB/db_mysql_schema.sql para más información.
view_appinfo
view_role_permissions
view_userinfo
# Información incluidas en el esquema
A continuacion se describe la información creada para las diferentes tablas, revisar el archivo /tools/mysql/schemaDB/initial_mysql_data.sql para más información.
- status
- Active
- Inactive
- Banned
- roles
- GOD_OF_THE_UNIVERSE
- GENERAL_ADMINISTRATOR
- COMPANY_OWNER
- APPS_ADMINISTRATOR
- USERS_ADMINISTRATOR
- REGULAR_USER
- ANONYMOUS_USER
- permissions
- OWNER
- SECURITY_ADMIN
- MANAGE_ROLES
- MANAGE_PERMISSIONS
- MANAGE_COMPANIES
- MANAGE_APPS
- MANAGE_CLIENTS
- MANAGE_USERS
- SUBSCRIBER_USER
- UNPRIVILEGED_USER
- applications
- AWESOME_APP
- auth_clients
- client_id qKJuU2adD526AXn
- client_secret dTsnEeQJsO4zhG7
- auth_grants
- auth_code zQgXnstLNpW12R615XSJdJ8sC
- companies
- Home Inside
- persons
- Lilith Doe
- users
- username
lilith
- password
lilith_1
- username
# Issues
Para cualquier duda, comentario, sugerencia ó aporte, dirigete a la sección de issues. (opens new window) Antes de abrir un issue nuevo, revisa los ya existentes, en busca de una solución (posiblemente ya planteada) para el problema que se te presenta.