运行 Mean.js 应用程序时自动填充数据库
Automatically populating a database when running Mean.js application
对于我正在处理的 mean.js 项目,我有一个 csv 数据文件,我需要在我的一个服务器控制器中检查它。每次执行此检查时,我不想在控制器中打开 csv 文件,而是想将所有数据移动到我的 Mongo 数据库,然后快速查询检查。通常,我会使用一个简单的 python 脚本来执行此数据库操作,但是对于这个项目,我正在使用 Mean.js 提供的 Mean 堆栈,与几个工程师组成的团队在几个不同的环境中工作。
所以,我想做的是找出一种在我的 mean.js 应用程序中自动创建和填充此数据库的方法,因此:
- 我可以访问环境变量(尤其是数据库
名字)
- 这个数据库可以很容易地在其他工程师的基础上创建
机器和其他环境
- 它只会 运行 工程师在提取我的更改后第一次构建应用程序时
我正在使用 g运行t 作为应用程序范围的任务管理器,但它 运行 每次构建应用程序时都会执行每个任务,这意味着它会重复执行此操作。
有没有人对此有更好的建议?
两条建议:
首先,您可以使用 npm 脚本:https://docs.npmjs.com/misc/scripts
因此,例如,如果您的 "create database" 脚本是一个 python 文件,您可以将其添加到您的 package.json
:
{
...
"scripts": {
"createdb": "python create_database.py"
}
...
}
现在您可以在需要时 运行 像这样:
npm run-script createdb
不过,这是非常手动的。这引出了我的第二个建议:
您可以创建一个 g运行t 任务来填充您的数据库,并在 运行ning 之后创建一个隐藏文件,表明它已 运行。在 运行ning 之前检查文件是否存在,如果存在,则跳过任务。
将隐藏文件添加到您的 .gitignore
,每次克隆您的项目并启动 g运行t 时,您的数据库将只填充一次。
对于我正在处理的 mean.js 项目,我有一个 csv 数据文件,我需要在我的一个服务器控制器中检查它。每次执行此检查时,我不想在控制器中打开 csv 文件,而是想将所有数据移动到我的 Mongo 数据库,然后快速查询检查。通常,我会使用一个简单的 python 脚本来执行此数据库操作,但是对于这个项目,我正在使用 Mean.js 提供的 Mean 堆栈,与几个工程师组成的团队在几个不同的环境中工作。
所以,我想做的是找出一种在我的 mean.js 应用程序中自动创建和填充此数据库的方法,因此:
- 我可以访问环境变量(尤其是数据库 名字)
- 这个数据库可以很容易地在其他工程师的基础上创建 机器和其他环境
- 它只会 运行 工程师在提取我的更改后第一次构建应用程序时
我正在使用 g运行t 作为应用程序范围的任务管理器,但它 运行 每次构建应用程序时都会执行每个任务,这意味着它会重复执行此操作。
有没有人对此有更好的建议?
两条建议:
首先,您可以使用 npm 脚本:https://docs.npmjs.com/misc/scripts
因此,例如,如果您的 "create database" 脚本是一个 python 文件,您可以将其添加到您的 package.json
:
{
...
"scripts": {
"createdb": "python create_database.py"
}
...
}
现在您可以在需要时 运行 像这样:
npm run-script createdb
不过,这是非常手动的。这引出了我的第二个建议:
您可以创建一个 g运行t 任务来填充您的数据库,并在 运行ning 之后创建一个隐藏文件,表明它已 运行。在 运行ning 之前检查文件是否存在,如果存在,则跳过任务。
将隐藏文件添加到您的 .gitignore
,每次克隆您的项目并启动 g运行t 时,您的数据库将只填充一次。