Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用knex.js防止种子在生产环境中运行?_Javascript_Database_Knex.js - Fatal编程技术网

Javascript 如何使用knex.js防止种子在生产环境中运行?

Javascript 如何使用knex.js防止种子在生产环境中运行?,javascript,database,knex.js,Javascript,Database,Knex.js,我正在使用来管理项目中的迁移和种子,连接选项由-env开关管理到单个命令 如何确保像knex seed:run这样的seed命令永远不会在生产环境中运行?例如,不使用seed或在每个seed的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误 knex中没有任何内置功能可以防止这种情况发生。例如,不使用种子或在每个种子的开头添加代码,这将检查knex客户端配置是否未指向dev数据库,它将抛出错误 knex中没有任何内置功能可以防止这种情况。我通过给它一个不存在的种子目录

我正在使用来管理项目中的迁移和种子,连接选项由-env开关管理到单个命令


如何确保像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'
    }
  }
}