首页 > 解决方案 > Sequelize CLI:如何防止测试数据播种器在生产中运行?

问题描述

现在,我想建立一个仅应用于测试环境的播种机子集。

在此处输入图像描述

例如,在此屏幕截图中,我希望将直接在“播种机”下的播种器应用于所有环境,但将“测试”下的播种机仅应用于我的本地计算机的数据库。

Sequelize 中有没有办法为迁移和播种机建立不同的命名空间?

我希望能够运行这样的命令:

npx sequelize-cli db:seed --subset test

标签: sequelize.js

解决方案


Sequelize 不会具有环境意识。您可以在播种器中构建逻辑检测环境并以不同的方式运行(坏主意),或者您可以为生产环境和测试环境设置单独的文件夹。我强烈建议测试环境运行所有的 prod 播种机,反之亦然。当您开始生产时,您希望拥有经过良好测试的产品播种机。实际上,我建议“stage”反映生产中发生的情况,以便 local/dev(feature) 运行额外的测试播种器,但 stage 和 prod 仅运行生产播种器。

有关一些具体想法,另请参阅此答案:使用 sequelize 的种子数据的不同目录


推荐阅读