Javascript 如何使用knex.js防止种子在生产环境中运行?
我正在使用来管理项目中的迁移和种子,连接选项由-env开关管理到单个命令Javascript 如何使用knex.js防止种子在生产环境中运行?,javascript,database,knex.js,Javascript,Database,Knex.js,我正在使用来管理项目中的迁移和种子,连接选项由-env开关管理到单个命令 如何确保像knex seed:run这样的seed命令永远不会在生产环境中运行?例如,不使用seed或在每个seed的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误 knex中没有任何内置功能可以防止这种情况发生。例如,不使用种子或在每个种子的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误 knex中没有任何内置功能可以防止这种情况。我通过给它一个不存在的种子目录
如何确保像knex seed:run这样的seed命令永远不会在生产环境中运行?例如,不使用seed或在每个seed的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误
knex中没有任何内置功能可以防止这种情况发生。例如,不使用种子或在每个种子的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误
knex中没有任何内置功能可以防止这种情况。我通过给它一个不存在的种子目录解决了这个问题。若它在生产环境中运行,它将崩溃,并没有这样的文件或目录 我的knexfile.js就是一个例子:
我通过给它一个不存在的种子目录来解决这个问题。若它在生产环境中运行,它将崩溃,并没有这样的文件或目录 我的knexfile.js就是一个例子: 我就是这样做的: 在开发中,确保创建一个像APP_env=development这样的环境变量 在每个种子文件中,我都放: 如果process.env.APP_env!==发展{ console.errorError:种子只能用于开发; process.exit1; } 完成了 我就是这样做的: 在开发中,确保创建一个像APP_env=development这样的环境变量 在每个种子文件中,我都放: 如果process.env.APP_env!==发展{ console.errorError:种子只能用于开发; process.exit1; }
完成了 是的,环境检查正是我所期待的。你知道一个好方法来询问knex使用的是哪种环境吗?也许你可以从knex.client.config中找到它,并检查连接点是否指向development DBYep,环境检查正是我所期望的。您知道一个好方法来询问knex正在使用哪个env吗?也许您可以从knex.client.config中找到它,并检查连接点是否指向开发数据库
module.exports = {
...,
production: {
client: 'pg',
connection: ...,
seeds: {
directory: 'you-are-not-able-to-run-seeds-in-production'
}
}
}