postgresql - knexfile.js 的客户端属性是什么
问题描述
在PostgreSQL配置的knex 文档knexfile.js
中,它们有一个名为 的属性client
,看起来是这样的:
...
client: 'pg'
...
然而,通过其他一些使用 PostgreSQL 的项目,我注意到它们在那里有不同的价值,看起来是这样的:
...
client: 'postgresql'
...
此字符串是否对应于项目正在使用的某种命令行工具的名称,或者我误解了什么?
解决方案
Postgresql 基于“架构基础”中描述的服务器-客户端模型
psql是文档中提到的 postgres 的标准 cli 客户端。
客户端也可以是 pg-admin 之类的 GUI,或者是 ' pg ' 之类的节点包 - 这是一个列表。
client 参数是必需的,它决定了哪个客户端适配器将与库一起使用。
您还应该阅读“服务器设置和操作”的文档
要初始化库,您可以执行以下操作(在本例中为 localhost):
var knex = require('knex')({
client: 'mysql',
connection: {
host : '127.0.0.1',
user : 'your_database_user',
password : 'your_database_password',
database : 'myapp_test'
}
})
客户端守护程序 ist 'postgres' 的标准用户 - 您当然可以使用它,但强烈建议按照文档中的说明创建新用户和/或将密码应用于标准用户 'postgres'。
在 Debian 拉伸 iE 上:
# su - postgres
$ psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'SecretPasswordHere';"
确保删除命令行历史记录,这样没有人可以读出您的密码:
rm ~/.psql_history
现在您可以在系统和 postgres 上添加新用户(iE foobar)
# adduser foobar
和
# su - postgres
$ createuser --pwprompt --interactive foobar
让我们看看以下设置:
module.exports = {
development: {
client: 'xyz',
connection: { user: 'foobar', database: 'my_app' }
},
production: { client: 'abc', connection: process.env.DATABASE_URL }
};
这基本上告诉我们以下信息:
在 dev - 使用客户端xyz以用户foobar连接到 postgresqls 数据库my_app(在这种情况下没有 pwd)
在 prod - 检索 globalenv db-server 的 url 设置为并通过客户端abc连接
下面是一个 node 的 pg-client 包如何打开连接池的例子:
const pool = new Pool({
user: 'foobar',
host: 'someUrl',
database: 'someDataBaseName',
password: 'somePWD',
port: 5432,
})
如果您可以澄清或详细说明您的设置或您希望实现的更多目标,我可以为您提供一些更详细的信息 - 但我希望无论如何都能有所帮助..
推荐阅读
- docker - 根据构建 ARG 在 Dockerfile 中选择 ENV/ARG
- terminal - 在 Ubuntu 18.04 命令行中运行 julius.jconf 时出错
- python - 使用 numpy 计算条纹
- speech-to-text - Azure Speech to Text Translations with multiple languages
- c++ - 尝试在 xcode 中退出程序时出现 C++ 11db 错误。初级水平
- vue.js - 下拉元素(v-overflow-btn、v-date-picker)仅部分显示
- python - 我可以创建一个带有根目录的包吗?
- python - 双重迭代不会为dict产生错误?
- python - Python 运行速度明显快于 C++?这里似乎有问题
- field - 脚本是否可以引用新记录上的一行?