postgresql Sequelize ORM,我们必须将数据库信息放入json文件中,这正常吗?

nnvyjq4y  于 2022-12-12  发布在  PostgreSQL
关注(0)|答案(2)|浏览(99)

我试图更深入地使用Sequelize,尤其是使用迁移。但是,我无法想象documentation要求我们使用json文件来放置数据库信息。所以,我的问题是,“当我在项目中使用Git和GiHub时,这怎么可能呢?”如果我决定忽略该文件,我的同事怎样才能知道我正在使用的确切结构?2或者我遗漏了什么?3你应该分享你的Sequelize、Postgress和Git的确切工作流程吗?

fwzugrvs

fwzugrvs1#

是的,将数据库信息放在json或js文件中是正常的,为了更好和提高安全性,您应该从服务器上的.env文件或ENV变量中提取数据库配置。即,而不是:

development: {
    username: 'database_dev',
    password: 'database_dev',
    database: 'database_dev',
    host: '127.0.0.1',
    port: 3306,
    dialect: 'mysql'
  }

您的配置文件中应该包含如下内容:

development: {
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    host: process.env.DB_HOSTNAME,
    port: process.env.DB_PORT,
    dialect: process.env.DIALECT
}

请注意,您的用户名和密码现在来自process.env
然后你必须创建一个包含所有敏感信息(如密码)的.env文件,这个文件你必须添加到.gitignore中,并且永远不要提交给git。阅读更多关于env文件的信息here
在github上共享代码时,您会包含config.json/config.js文件,但您的同事或潜在的黑客不会知道用户名、密码或任何数据库配置,这样做是为了避免代码中包含密码等敏感信息。
然后,数据库配置必须单独与它们共享,或者只能作为ENV变量存在于其中一台服务器上。

q3aa0525

q3aa05252#

我终于找到了我一直在寻找的东西,所以我不知道任何其他方式来分享它,如果不与这个答案框。
我从这个answer中得到了灵感
1.将babel-register安装为dev依赖项

  1. require它在.sequelizerc
    1.确保配置文件是cjs的。

相关问题