在 adonis v4 中初始化一个 mysql 连接
Initialize a mysql connection in adonis v4
我想使用从主数据库获取的凭据初始化一个 MySQL 连接,可以在 AdonisV4 上执行此操作吗?
使用 adonis lucid
我无法在配置中设置凭据,因为它们对于发出的每个请求都是特定的。
您将在终端 shell 中调用与 mysql 相关的 npm 库。
npm i --save mysql
AdonisJs 使用 config/database.js 文件中定义的连接值。因此,您可以在 JavaScript 应用程序中为单个 数据库 连接创建一个配置文件,如下所示:
您可以为主数据库创建一个初始环境文件,例如:
HOST=127.0.0.1
PORT=3306
NODE_ENV=development
CACHE_VIEWS=false
对于多个连接,您可以像这样设置您的配置文件:
'use strict'
const Env = use('Env')
const Helpers = use('Helpers')
module.exports = {
connection: Env.get('DB_CONNECTION', 'mysql1'),
mysql1: {
client: 'mysql',
connection: {
host: Env.get('DB_HOST', 'database_host_1'),
port: Env.get('DB_PORT', '3306'),
user: Env.get('DB_USER', 'my_database_user_1'),
password: Env.get('DB_PASSWORD', 'OhMyAdonis'),
database: Env.get('DB_DATABASE', 'adonis')
}
},
mysql2: {
client: 'mysql',
connection: {
host: Env.get('DB_HOST', 'database_host_2'),
port: Env.get('DB_PORT', '3306'),
user: Env.get('DB_USER', 'my_database_user_2'),
password: Env.get('DB_PASSWORD', 'OhMySecondAdonis'),
database: Env.get('DB_DATABASE', 'another_adonis')
}
}
}
因此,您可以 select 数据库配置文件在运行时定义的任何连接:
Database
.connection('mysql1')
.table('users')
Database
.connection('mysql2')
.table('users')
但是,如果您有很多数据库,这种方法会影响 RAM 服务器。因此,如果您有一个像您的情况一样的主数据库,请使用 SQL 查询构建器(如 Objection.js 和基于 knex 的 MySQL 支持,为 Node.JS 选择动态连接.
可以采用 here 的多租户方法。
我想使用从主数据库获取的凭据初始化一个 MySQL 连接,可以在 AdonisV4 上执行此操作吗?
使用 adonis lucid
我无法在配置中设置凭据,因为它们对于发出的每个请求都是特定的。
您将在终端 shell 中调用与 mysql 相关的 npm 库。
npm i --save mysql
AdonisJs 使用 config/database.js 文件中定义的连接值。因此,您可以在 JavaScript 应用程序中为单个 数据库 连接创建一个配置文件,如下所示:
您可以为主数据库创建一个初始环境文件,例如:
HOST=127.0.0.1
PORT=3306
NODE_ENV=development
CACHE_VIEWS=false
对于多个连接,您可以像这样设置您的配置文件:
'use strict'
const Env = use('Env')
const Helpers = use('Helpers')
module.exports = {
connection: Env.get('DB_CONNECTION', 'mysql1'),
mysql1: {
client: 'mysql',
connection: {
host: Env.get('DB_HOST', 'database_host_1'),
port: Env.get('DB_PORT', '3306'),
user: Env.get('DB_USER', 'my_database_user_1'),
password: Env.get('DB_PASSWORD', 'OhMyAdonis'),
database: Env.get('DB_DATABASE', 'adonis')
}
},
mysql2: {
client: 'mysql',
connection: {
host: Env.get('DB_HOST', 'database_host_2'),
port: Env.get('DB_PORT', '3306'),
user: Env.get('DB_USER', 'my_database_user_2'),
password: Env.get('DB_PASSWORD', 'OhMySecondAdonis'),
database: Env.get('DB_DATABASE', 'another_adonis')
}
}
}
因此,您可以 select 数据库配置文件在运行时定义的任何连接:
Database
.connection('mysql1')
.table('users')
Database
.connection('mysql2')
.table('users')
但是,如果您有很多数据库,这种方法会影响 RAM 服务器。因此,如果您有一个像您的情况一样的主数据库,请使用 SQL 查询构建器(如 Objection.js 和基于 knex 的 MySQL 支持,为 Node.JS 选择动态连接.
可以采用 here 的多租户方法。